正则的一些使用

正则表达式的的字符及其含义:

\ :将下一个字符标记为一个特殊字符,或一个原义字符 ,或者一个向后引用,或者一个八进制转义符

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

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

*:匹配前面的子表达式零次或者多次 =>fo* 匹配f 或者foo等

+:匹配前面的子表达式一次或者多次 =>fo+匹配fo或者foo等

?:匹配前面的子表达式零次或者一次 =>fo?匹配f或者fo

{n}:n是一个非负整数 匹配确定的n次 =>o{2} 可以匹配food 不匹配old

{n,}:n是一个非负整数 至少匹配n次

{n,m}:最少匹配n次最多匹配m次

?:当紧跟在其他限制符之后 表示非贪婪匹配 尽可能少的匹配搜索的字符串 =>o+?匹配o 而o+匹配所有的o

.:匹配除了“\n“之外的任意的单个字符 要想匹配\n在内的任意字符 使用(,I\n)

(pattern):匹配pattern并且获取这一匹配

(?:pattern):匹配pattern但是不获取匹配结果

(?=pattern):正向肯定预查 在任何匹配pattern的字符串开始匹配查找的字符串 =>Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows

(?!pattern):正向否定预查 在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows

(?<=pattern):反向肯定预查 与正向肯定预查类似 但是方向相反 (?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”

(?<!pattern):反向否定预查 与正向否定类似 只是方向相反 (?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows

xIy:匹配x 或者y

[xyz]:匹配所包含的任意字符

[^xyz]:匹配未包含的任意字符

[a-z]:匹配指定范围a-z的任意字符

[^a-z]:匹配不在指定范围内的任意字符

\b:匹配一个单词边界 也就是单词和空格之间的位置  =>“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er

\B:匹配一个非单词边界

\cx:匹配由x指明的控制字符

\d:匹配一个数字字符 等价[0-9]

\D:匹配一个非数字字符 等价[^0-9]

\f:匹配一个换页符

\n:匹配一个换行符

\r:匹配一个回车符

\s:匹配任何空白字符 包括空格 制表符 换页符 ==[ \f\n\r\t\v]

\S:匹配任何非空白字符

\t:匹配一个制表符

\v:匹配一个垂直制表符

\w:匹配包括下划线的任何单词字符==[A-Za-z0-9]

\W:匹配任何非单词字符

猜你喜欢

转载自www.cnblogs.com/yzstyle/p/10861417.html