正则表达式匹配规则(符号使用方法,实例)


字符


描述


例子


\


将下一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符。


\n 表示换行符、\d 匹配 [0-9] 的数字


^


匹配输入字符串的开始位置。


^abc 表示匹配有 abc 开头的字符串


$


匹配输入字符串的结束位置。


^\d$ 表示匹配一个 [0-9] 的数字


*


匹配前面的子表达式零次或多次。


zo* 能匹配 z 或者 zoo* 等价于 {0,}


+


匹配前面的子表达式一次或多次。


zo+ 能匹配 zo 或者 zoo,但不能匹配 z+ 等价于 {1,}


?


匹配前面的子表达式零次或一次。


do(es)? 可以匹配 doesdoes 中的 do? 等价于 {0,1}


{n}


n 是一个非负整数。匹配确定的 n 次。


o{2} 不能匹配 Bob 中的 o,但是能匹配 food 中的两个 o


{n,}


n 是一个非负整数。至少匹配 n 次。


o{2,} 不能匹配 Bob 中的 o,但能匹配 foooood 中的所有 oo{1,} 等价于 o+o{0,} 则等价于 o*


{n,m}


m 和 n 均为非负整数,其中 n <= m。最少匹配 n 次且最多匹配 m 次。


例如,o{1,3} 将匹配 fooooood 中的前三个 o。o{0,1} 等价于 o?。请注意在逗号和两个数之间不能有空格。


?


当该字符紧跟在任何一个其他限制符 *+?{n}{n,}{n,m} 后面时(例如 +?),匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。


对于字符串 ooooo+? 将匹配单个 o,而 o+ 将匹配所有 o


.


匹配除 \n 之外的任何单个字符。. 是一个很强大的 元符号,请慎用。


要匹配包括 \n 在内的任何字符,请使用 `(.


n) 的模式。要匹配小数点本身,请使用 .a.e 能匹配 nave 中的 ave 或者匹配 water 中的 ate`


(子表达式)


标记一个子表达式的开始和结束位置。


(\w)\1 能匹配 deep 中的 ee


(?:子表达式)


匹配 z子表达式 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符 `(


)` 来组合一个模式的各个部分是很有用。


`industr(?:y


ies) 就是一个等同于 industry


industries` 但更简略的正则表达式。


(?=子表达式)


一般用法:××(?=子表达式),它的意思就是 ×× 后面的条件限制是 ?= 后面的 子表达式


`Windows(?=95


98


NT


2000) 能匹配 Windows2000 中的 Windows,但不能匹配 Windows3.1 中的 Windowsw+(?=.) 能匹配 He is. The dog ran. The sun is out. 中的 isranout`


(?!子表达式)


类似于 (?=子表达式),表示不等于后面的 子表达式


`Windows(?!95


98


NT


2000) 能匹配 Windows3.1 中的 Windows,但不能匹配 Windows2000 中的 Windowsb(?!un)w+b 能匹配 unsure sure unity used 中的 sureused`


(?<=子表达式)


同上。


`(?<=95


98


NT


2000)Windows 能匹配 2000Windows 中的 Windows,但不能匹配 3.1Windows 中的Windows(?<=19)d{2}b 能匹配 1851 1999 1950 1905 2003 中的 995005`


(?<!子表达式)


同上。


`(?<!95


98


NT


2000)Windows 能匹配 3.1Windows 中的 Windows,但不能匹配 2000Windows 中的 Windowsb(?!un)w+b 能匹配 unsure sure unity used 中的 sureused`


`x


y`


匹配 x 或者 y。


`z


food 能匹配 z 或者 food(z


f)ood 则匹配 zoodfood`。


[xyz]


字符集合。匹配所包含的任意一个字符。


[abc] 可以匹配 plain 中的 a


[^xyz]


求反。匹配未包含的任意字符。


例如,[^abc] 可以匹配 plain 中的 p[^aei] 匹配 reign 中的 rgn


[a-z]


字符范围。匹配指定范围内的任意字符。


[a-z] 可以匹配 az 范围内的任意小写字母字符。注意:[A-Z] 才匹配大写英文字母


[^a-z]


求反。匹配任何不在指定范围内的任意字符。


[^a-z] 可以匹配任何不在 az 范围内的任意字符。


\b


匹配一个单词边界,也就是指单词和空格间的位置。


er\b 可以匹配 never 中的 er,但不能匹配 verb 中的 er


\B


匹配非单词边界。


er\B 能匹配 verb 中的 er,但不能匹配 never 中的 er


\cx


匹配由 x 指明的控制字符。


例如,\cM 匹配一个 Control-M 或者回车符。x 的值必须为 A-Za-z 之一。否则,将 c 视为一个原义的 c 字符。


\d


匹配一个数字字符。等价于[0-9]。


4 = IV 中的 4


\D


匹配一个非数字字符。等价于1


4 = IV 中的 、= IV


\f


匹配一个换页符。等价于x0c和cL。


[\f]{2,} 能匹配 \f\f\f 中的 \f\f\f


\n


匹配一个换行符。等价于x0a和cJ。


\r\n(\w+) 能匹配 \r\nThese are\ntwo lines. 中的 \r\nThese


\r


匹配一个回车符。等价于x0d和cM。


\r\n(\w+) 能匹配 \r\nThese are\ntwo lines. 中的 \r\nThese


\s


匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ fnrtv]。


\w\s 能匹配 ID A1.3 中的 D


\S


匹配任何非空白字符。等价于2


\s\S 能匹配 int __ctr 中的 _


\t


匹配一个制表符。等价于x09和cI。


(\w+)\t 能 匹配 item1\titem2\t 中的 item1\titem2\t


\v


匹配一个垂直制表符。等价于x0b和cK。


[\v]{2,} 能匹配 \v\v\v 中的 \v\v\v


\w


匹配包括下划线的任何单词字符。等价于 [A-Za-z0-9_]


ID A1.3 中的 IDA13


\W


匹配任何非单词字符。等价于 [^A-Za-z0-9_]


ID A1.3 中的 、.

参考博文:

https://segmentfault.com/a/1190000017056834?utm_source=tag-newest

原文地址:https://www.cnblogs.com/smartisn/p/12217103.html

时间: 2024-08-01 18:53:32

正则表达式匹配规则(符号使用方法,实例)的相关文章

正则表达式 - 匹配规则

正则表达式 - 匹配规则 基本模式匹配 一切从最基本的开始.模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符.重复出现,或表示上下文.例如: ^once 这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串.例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配

正则表达式匹配规则及示例

正则表达式 - 匹配规则 基本模式匹配 一切从最基本的开始.模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符.重复出现,或表示上下文.例如: ^once 这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串.例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配

兄弟连学Python(06)---- 正则表达式匹配规则

正则表达式 - 匹配规则 基本模式匹配 一切从最基本的开始.模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符.重复出现,或表示上下文.例如: ^once 这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串.例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配

PHP核心技术与最佳实践之正则表达式匹配规则

PHP核心技术与最佳实践之正则表达式匹配规则 本文介绍几种常用的匹配规则. 1.     字符组 查找数字.字母.空白很简单,因为已经有了对应这些集合的元字符,但是如果匹配没有预定义元字符的字符集合,方法很简单, 就是在方括号内列出它们. 例如:[aeiou]匹配任何一个英文元音字母,[.*?]匹配标点中的一个.注意此时方括号内的元字符失去了特殊意义. 也可以指定字符范围,例如[0-9]的含义和\d完全一致:代表一位数字:同理[a-zA-Z0-9]等同于\w; 字符组很简单,但是一定要弄清楚字符

Nginx_location的匹配规则的使用方法与实例

一 Nginx的location语法 location [=|--|--*|^--] /uri/ { - } =         严格匹配.如果请求匹配这个location,那么将停止搜索并立即处理此请求 --         区分大小写匹配(可用正则表达式) --*       不区分大小写匹配(可用正则表达式) !--       区分大小写不匹配 !--*     不区分大小写不匹配 ^--      如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式

正则表达式匹配规则

基本模式匹配一切从最基本的开始.模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符.重复出现,或表示上下文.例如: ^once这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串.例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配.正如如^符号表示开头一样,$

【转】正则表达式的匹配规则

转自http://www.cnblogs.com/xiaohuochai/p/5608807.html 元字符 大部分字符在正则表达式中,就是字面的含义,比如/a/匹配a,/b/匹配b /dog/.test("old dog") // true 但还有一些字符,它们除了字面意思外,还有着特殊的含义,这些字符就是元字符 在javascript中,共有14个元字符(meta-character) () [] {} \ ^ $ | ? * + . 元字符 名称 匹配对象 . 点号 单个任意字

使用正则表达式匹配任意字符包括空格和换行符

注:元字符包括\ | ( ) [ ] { } ^ $ * + ? . ) 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</>|<.*? />

正则表达式匹配包括换行符的所有字符

今天在Java中想使用正则表达式来获取一段文本中的任意字符. (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现正则表达式中,"."(点符号)匹配的是除了换行符"\n"以外的所有字符. 查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正则表达式匹配规则: ([\s\S]*)正则表达式匹配包括换行符的所有字符,布布扣,bubuko.com