正则表达式
作者:互联网
正则表达式的使用
一、元字符(单次匹配)
.
匹配除换行以外的任意字符\w
匹配字母或数字或下划线或汉字\s
匹配任意的空白字符\d
匹配数字\b
匹配单词的开始或结束^
匹配字符的开始(在集合字符里([^])表示非的意思)$
匹配字符串的结束- 详解和实例
^\d\d\d$
匹配三个全部为数字的字符串 例如:123,456,789,多个的使用^d(9)$
\bOlive\b
即匹配Olive这个单词
二、反义字符
反义字符多用于查找除某个字符以外其他任意字符均可以的情况
\W
匹配任意不是字母,数字,下划线,汉字的字符\S
匹配任意不是空白符的字符\D
匹配任意非数字的字符\B
匹配不是单词开始或结束的位置[^]
匹配除了x以外的任意字符
三、限定字符(多用于重复匹配次数)
*
重复零次或更多次+
重复一次或更多次?
重复一次或零次{n}
重复n次{n,}
重复n次或更多次{n,m}
重复n到m次
四、字符分支
用“|”将不同的条件分割开来
五、字符分组
通过()
进行分组,例如ip地址((25[0-5]|2[0-4][0-9]|[0-1]\d\d\.){3}(25[0-5]|2[0-4][0-9]|[0-1]\d\d\.))
-
捕获
(exp)
匹配exp,并捕获文本到自动命名的组里(?<name>exp)
匹配exp,并捕获文本到名称为name的组里,也可写成(?'name'exp)
(?:exp)
匹配exp,不捕获匹配的文本,也不给分组分配组号
-
零宽断言
(?=exp)
匹配exp前面的位置(?<=exp)
匹配exp后面的位置(?!exp)
匹配后面跟的不是exp的位置(?<!exp)
匹配前面不是exp的位置
注释:
(?#comment)
这种类型的分组不对正则表达式处理产生任何影响,用于提供注释让人阅读
六、懒惰匹配和贪婪匹配
贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符
懒惰匹配:有时候需要匹配尽可能少的字符
懒惰匹配限定符(但尽可能少重复)
*?
重复任意次+?
重复一次或多次??
重复零次或一次{n,m}?
重复n到m次{n,}?
重复n次以上
七、常用的正则表达式整理
标签:字符,匹配,正则表达式,重复,exp,任意 来源: https://www.cnblogs.com/lxuegod/p/16513831.html