正则表达式

正则表达式-身份证号码验证

核能气质少年 提交于 2020-01-25 05:01:35
身份证号码验证,包含两代身份证,第一代和第二代身份证 第一代身份证15位,其编码规则顺序从左至右依次为6位数字地址码,6位数字出生年份后两位及日期,3位数字顺序码。 格式:^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$ 正则表达式分解如下: [1-9]\d{5}:前六位地区,非0开头 \d{2} :出生年份后两位00-99 ((0[1-9])|(10|11|12)):月份,01-12月 (([0-2][1-9])|10|20|30|31):日期,01-31天 \d{3}:顺序码三位,没有校验码 第二代身份证18位,其编码规则顺序从左至右依次为6位数字地址码,8位数字出生年份日期码,3位数字顺序码,1位数字校验码(X有时会出现): 格式: ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$ 正则表达式分解如下: [1-9]\d{5} :前六位地区,非0开头 (18|19|([23]\d))\d{2}:出身年份,覆盖范围为 1800-3999 年 ((0[1-9])|(10|11|12)):月份,01-12月 (([0-2][1-9])|10|20|30|31)

Linux三剑客之grep命令

早过忘川 提交于 2020-01-25 04:10:14
1、grep简介 grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows系统下类似命令FINDSTR。 grep用来基于正则去实现行过滤的工具;它有很多衍生命令: egrep 扩展的grep,即默认使用扩展正则表达式的grep,更高级。 fgrep 专用于文件行过滤的工具。 2、grep的工作原理 grep命令在一个或多个文件中查找某个字符模式,如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词。位于模式之后的所有单词都被视为文件名。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。 3、grep命令的常用选项 -- color = auto 对匹配到的文本着色显示。 - v 显示不被pattern匹配到的行,反向查找。 - V 或 -- version : 显示版本信息。 - i 忽略字符大小写。 - n 显示匹配的行号 , 在显示符合样式的那一行之前,标示出该行的列数编号。 - o

正则表达式中的特殊字符

自作多情 提交于 2020-01-25 03:58:06
正则表达式中的特殊字符 \ 在字面意义和特殊意义之间进行切换。例如\w 表示\w 的特殊意义(见下面的解释)而不是字面值 w,但是\$表示不使用$的特殊意义(见下面的解释)而是使用$字符本身 ^ 字符串的开头 $ 字符串的结尾 * 零次或多次 一次或多次 ? 零次或一次 . 除换行符外的任何字符 \b 单词边界 \B 非单词边界 \d 0~9 的任何数字(与[0-9]相同) \D 任何非数字 \f 换页符(form feed) \n 换行符 \r 回车符 \s 任何一个空白字符(与[ \f\n\r\t\v]相同) \S 任何一个非空白字符 \t 制表符 \v 垂直制表符 \w 任何字母、数字以及下划线(与[a-zA-Z0-9_]相同) \W 除数字、字母及下划线外的其他字符 \xnn 十六进制数字nn 定义的ASCII 字符 \onn 八进制数字nn 定义的ASCII 字符 \cX 控制字符X [abcde] 与其中任何字符匹配的字符集 [^abcde] 字符补集,与其中任何字符都不匹配的字符集 [a-e] 与其中的字符范围匹配的字符集 [\b] 退格字符的字面意义(不同于\b) {n} 前面的字符正好出现n 次 {n,} 前面的字符至少出现n 次 {n,m} 前面的字符出现n~m 次 () 一个组,可以在后面引用它 x|y x或y 来源: CSDN 作者: 会做饭的技术男 链接:

python正则表达式(4)--search方法

不问归期 提交于 2020-01-24 22:34:04
摘自:https://www.cnblogs.com/zeke-python-road/p/9565419.html 1.re.search函数 re.search 扫描整个字符串并返回第一个成功的匹配,如果匹配失败search()就返回None。 (1)函数语法 :   re.search(pattern, string, flags=0)   函数参数说明:     pattern 匹配的正则表达式     string 要匹配的字符串     flgs 标志位,用于控制正则表达式的匹配方式   我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。   group(num=0) 获取匹配结果的各个分组的字符串,group() 可以一次输入多个组号,此时返回一个包含那些组所对应值的元组。   groups() 返回一个包含所有分组字符串的元组。   注意:如果未匹配成功, search()返回值为None,此时再使用group()、groups() 方法会报错。       应该先获取匹配对象,然后判断匹配对象是否非空,当非空时在使用group()、groups() 方法获取匹配结果。见实例2 (2)实例 例1 import re print ( re . search (r ' How ' , ' How are you ' ) . span

【Java 常用类】(7)java.util.regex.Pattern、Matcher的常用方法

大城市里の小女人 提交于 2020-01-24 21:58:33
文章目录 前言 大纲 二、使用 1.字段(Pattern类) 2.构造器(Pattern类和Matcher类) 3.常用方法(Pattern类) 3.1 创建正则编译到模式中 3.2 创建正则编译到模式中并给定标志 3.3 模式的字符串形式 3.4 字符串匹配 3.5 创建匹配器 4.常用方法(Matcher类) 4.1 字符串匹配 4.2 捕获组数量 4.3 正则替换 4.4 查找获取匹配 前言 我上一篇写了正则表达式的总结,这一篇讲一下Java中Pattern和Matcher类的使用。 正则表达式总结请移步: 【正则表达式】(0)总结 大纲 Pattern :正则表达式的编译表示形式。 主要就是用来写正则表达式。 public final class Patternextends Object implements Serializable Matcher 通过解释 Pattern 对 character sequence 执行匹配操作的引擎。 看名字也知道了,匹配器主要用来匹配。 public final class Matcher extends Object implements MatchResult 二、使用 1.字段(Pattern类) int caseInsensitive = Pattern . CASE_INSENSITIVE ; // 忽视大小写

Python 正则表达式

限于喜欢 提交于 2020-01-24 15:32:33
Python 正则表达式 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块来操作,名字为re import re (1)三种基本方法 在re模块中,通常使用三种方法,match,search和findall,下面对这三种方法进行简单的介绍: 一.match方法 re.match 尝试从字符串的 起始位置 匹配一个模式,匹配成功则返回的是一个匹配对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的是空, 注意:match只能匹配到一个 ** 下面来看代码理解 s = 'python123python666python888' result = re . match ( 'python' , s ) print ( result ) # <re.Match object; span=(0, 6), match='python'> print ( result . span ( ) ) # (0, 6) print ( result . group ( ) ) # python 1.通过span()提取匹配到的字符下标 2.通过group()提取匹配到的内容 而s字符串中有3个python的存在,match只能匹配到一个 下面我们改变一下s,得到不一样的结果 s = '1python123python666python888'

JAVA蓝桥杯整理——四则运算

放肆的年华 提交于 2020-01-24 15:07:40
JAVA正则表达式 概念 1.定义字符串模式 2.搜索编辑处理文本 3.并不仅限于一种语言,但每种语言都有差别 实例 字符串匹配字符串: hello world =hello world **.**可以匹配任意字符 \s+匹配多个空格: hello\s+world =hello world ^定义了什么时候开始 \d+匹配一个或多个数字 ?设置括号内选项可选 \ .匹配 ". 可以匹配任意数字多项式5+2+1*3 题目 Java中提供了对正则表达式的支持 有的时候恰当的使用正则表达式可以让我们事半功倍! 以下代码用来检验一个四则运算式中的数据项的数目,请填写划线部分缺少的代码。 注意:只填写缺少的代码,不要写任何多余的内容,例如,已有的双引号。 来源: CSDN 作者: 王忠英小朋友! 链接: https://blog.csdn.net/weixin_43955788/article/details/104036462

MySQL 正则(Regular Expression) 邮箱(Email)

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-24 14:52:45
MySQL 正则表达式 | 菜鸟教程 https://www.runoob.com/mysql/mysql-regexp.html (1条消息)常用正则表达式—邮箱(Email) - Samuel - CSDN博客 https://blog.csdn.net/make164492212/article/details/51656638 PHP 邮箱正则表达式 | 菜鸟教程 https://www.runoob.com/w3cnote/php-email-regrex.html 来源: https://www.cnblogs.com/rgqancy/p/11058479.html

经典有关正则表达式例子

筅森魡賤 提交于 2020-01-24 14:41:31
有字符串var str=’abc345efgabcab’,请写出3条JS语句分别实现如下3个功能 (1)去掉字符串中的a、b、c字符,形成结果:’345efg’ (2)将字符串中的数字用中括号括起来,形成结果:’abc[345]efgabcab’ (3)将字符串中的每个数字的值分别乘以2,形成结果:’abc6810efgabcab’ var str = "abc345efgabcab"; str = str.replace(/\[abc\]/g,""); //'345efg' str = str.replace(/(345)/g, "\[$1\]"); //'abc[345]efgabcab' str = str.replace(/\d/g, function(a){ //'abc6810efgabcab' return 2 * a }); 常见元字符 字符 含义 . 查找单个字符,除开换行和行结束符 ^ 匹配以xx开头的字符串(例如^n,匹配以n开头的字符串) $ 匹配以xx结尾的字符串(n$) \b 匹配单词的边界(开始或结束) \B 匹配非单词的边界 \w 查找单词字符(字母、数字、下划线或汉字)等价范围[a-zA-Z0-9_] \W 查找非单词字符(和\w相反,大写是取反,后面的类似) \s 查找任意的空白字符 等价范围[ \r\n\f\t\v] \S 查找非空白字符 \d

mobi电子书中删除多余的空格

我们两清 提交于 2020-01-24 09:42:43
过年放假,还是在宅家里看书,结果发现,有些电子书网上整理的并不好,有很多没有用的空格,十分影响阅读效率,于是打算看看能不能解决一下。步骤也很简单,首先下载一个caliber,这个重度kindle使用者都知道,然后我们需要把mobi转换为epub格式,这个格式是可以编辑的,caliber有自带的caliber editor这样的编辑器,打开就好。 我们可以看到,红色的框框中有很多的空格,而这些空格使我们不需要的,这个时候就需要正则表达式了。我们注意到,一些地方的空格其实是有用的,比如css语法中,例如上面的p和class之间。 然后我们在编辑器的 搜索 中点击查找替换,然后输入如下正则表达式: [^a-zA-Z=""><0-9]\s[^a-zA-Z=""><0-9] 同时把下面的模式改成 正则表达函数。 我们点击创建/编辑,然后建立一个自己的替换函数,函数的代码会python的同学应该很清楚了。 def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): return match.group()[0] + match.group()[-1] 功能可以说是一目了然。 总体来说,通过正则表达式来定位到空余的空格,正则表达式中,考虑到有一些特殊的格式符号