首页 > 其他分享 >正则表达式

正则表达式

时间:2023-07-11 23:44:55浏览次数:27  
标签:字符 数字 正则表达式 zA Za 字符串

正则表达式

一、正则表达式简介

正则表达式(Regular Expression)是一种文本模式,包括普通字符(如字母和数字)和特殊字符(也就是元字符),它使用单个字符串来描述、匹配一系列的符合某个句法规则的字符串。

许多程序设计语言都支持正则表达式来进行字符串的操作。

正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

二、正则表达式语法

正则表达式是由普通字符以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

1、普通字符
  普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。可打印字符包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

不可打印字符包括一些转义字符:

2、特殊字符(元字符)
  特殊字符,就是一些有特殊含义的字符,在试图匹配它们时要特别对待,若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。

3、限定字符(量词)
  限定字符又叫量词,是用于表示匹配的字符数量的。指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。

4、定位符
  定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界。

注意:不能将限定符与定位符一起使用。

三、正则表达式优先级

正则表达式优先级从高到低排序:

四、常用正则表达式

1、校验数字的表达式
(1)数字:[1]*$

(2)n位的数字:^\d{n}$

(3)至少n位的数字:^\d{n,}$

(4) m-n位的数字:^\d{m,n}$

(5)零和非零开头的数字:^(0|[1-9][0-9]*)$

(6) 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

(7)带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$

(8)正数、负数、和小数:^(-|+)?\d+(.\d+)?$

(9)有两位小数的正实数:[2]+(.[0-9]{2})?$

(10)有1~3位小数的正实数:[3]+(.[0-9]{1,3})?$

(11) 非零的正整数:[4]\d$ 或 ^([1-9][0-9]){1,3}或+?[1−9][0−9]∗
(12)非零的负整数:^-[1-9][]0-9"$ 或 ^-[1-9]\d$

(13) 非负整数:^\d+$ 或 [5]\d*|0$

(14)非正整数:^-[1-9]\d*|0或((−\d+)|(0+))
(15) 非负浮点数:^\d+(.\d+)?$ 或 [6]\d.\d|0.\d[1-9]\d|0?.0+|0$

(16)非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d.\d|0.\d[1-9]\d))|0?.0+|0$

(17)正浮点数:[7]\d.\d|0.\d[1-9]\d$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$

(18)负浮点数:^-([1-9]\d.\d|0.\d[1-9]\d)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$

(19)浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d.\d|0.\d[1-9]\d|0?.0+|0)$

2、检验字符的表达式
(1)汉字:[8]{0,}$

(2)英文和数字:[9]+$ 或 [10]{4,40}$

(3) 长度为3-20的所有字符:^.{3,20}$

(4)由26个英文字母组成的字符串:[11]+$

(5) 由26个大写英文字母组成的字符串:[12]+$

(6) 由26个小写英文字母组成的字符串:[13]+$

(7) 由数字和26个英文字母组成的字符串:[14]+$7

(8) 由数字、26个英文字母或者下划线组成的字符串:^\w+或\w3,20
(9)中文、英文、数字包括下划线:[15]+$

(10)中文、英文、数字但不包括下划线等符号:[16]+$ 或 [17]{2,20}$

3、特殊需求的表达式
(1) Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$

(2)域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

(3)手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

(4)身份证号(15位、18位数字):^\d{15}|\d{18}$

(5)日期格式:^\d{4}-\d{1,2}-\d{1,2}

(6)IP地址:((?

标签:字符,数字,正则表达式,zA,Za,字符串
From: https://www.cnblogs.com/bujidao1128/p/17546295.html

相关文章

  • 查找多个字符串的正则表达式
    非元组捕获的语法为:(?:exp) 比如查找江浙沪包邮区:(?:浙江|上海|江苏) 元组的概念(待补充)Python中的元组Python中元组(Tuple)是一种特殊的列表,是Python中可以用于存储数据集合数据类型。它的特殊性是:元组是一个是有序的且不可改变的集合......
  • 再见正则表达式!这次彻底告别手写!
    篇文章的目的是让你能得到完美的正则表达式,而且还不用自己拼。说到正则表达式,一直是令我头疼的问题,这家伙一般时候用不到,等用到的时候发现它的规则是一点儿也记不住,\d表示一个数字,\s表示包括下划线在内的任意单词字符,也就是 [A-Za-z0-9_],还有[\s\S]*可以匹配包括换行在内的任意......
  • 正则表达式中的\w
    在正则表达式中,\w 表示字母数字字符(Wordcharacter)。它匹配任何字母(包括大写和小写字母)和数字字符。具体而言,\w 匹配以下字符:所有字母(a-z、A-Z)和数字(0-9)的字符。下划线 _。以下是一些 \w 可能匹配的示例:字母(小写和大写),如 a、b、A、B 等数字,如 0、1、2 等下划线......
  • 正则表达式学习
    正则表达式学习正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和......
  • 正则表达式学习
    正则表达式学习语法正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有......
  • 正则表达式学习
    #正则表达式学习##语法>正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。##普通字符>普通字符包括没有显式指定为元字符的所有可打印和不可打印字符......
  • 正则表达式学习
    #正则表达式学习##语法>正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。##普通字符>普通字符包括没有显式指定为元字符的所有可打印和不可打印字符......
  • 让python的lxml模块的xpath支持正则表达式
    python的lxml模块是处理xml文档的比较好用的工具,其中的xpath函数可以检索指定的元素,但是它不支持正则表达式,比如某个属性的值是否匹配某个正则表达式,就没有办法实现.不过可以利用它的自定义函数扩展功能来实现,如下代码所示:importrefromlxmlimportetreefromlxm......
  • 匹配汉字的正则表达式
    常用汉字unicode范围:[\u4e00-\u9fa5]或 [一-龥]u4e00:一u9fa5:龥中文的unicode的中文编码表第一个“4e00”最后一个“9fa0”总共有20901个汉字。9fa0到9fa5的汉字:龠(u9fa0)龡(u9fa1)龢(u9fa2)龣(u9fa3)龤(u9fa4)龥(u9fa5)9fa1到9fbb有27个汉字,9fa1到9fef还有7......
  • 文本可以包含空格,但是不能全部是空格的正则表达式怎么写?
    正则表达式^(?=.*\S).+$单字符解释.默认匹配除换行符之外的任何单个字符。例如,.n/会匹配nay,anappleisonthetree"中的an'和on'但是不会匹配'nay'*匹配前一个表达式0次或多次。\S除空格(换行符、制表符、空格)外的任何内容。exp1(?=exp2)查找后面跟着exp2的ex......