正则表达式
正则表达式的使用
一、元字符(单次匹配)
.匹配除换行以外的任意字符\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次以上
七、常用的正则表达式整理



浙公网安备 33010602011771号