正则表达式——基础
1.正则表达式怎么运作
定义或描述一个字符串匹配的模式(pattern),并以此模式来匹配其他字符串中符合条件的子串。
2.正则匹配的语法规则
Ⅰ.字符匹配
-
string匹配固定的普通字符串直接保留字符串原样即可:
'abc'来匹配'abc'。 -
|表示用**“或”**来连接两个正则表达式ab|cd,用来匹配ab或cd。 -
[...]匹配一个字符组中的任意字符①
[abc]来匹配a、b或c;②
[^...]则相反,匹配字符组以外的任意字符,如[^abc]匹配1、_或d等[abc]以外的字符。 -
\b匹配单词的边界(左边界或右边界)①
na\b可以匹配china的na或nation的na,但不能匹配dianat中的na;②
\B则相反,匹配不作为单词边界的字符,如in\B匹配china中的in。 -
\d匹配数字①
\d来匹配0-9之间的任何数字,等价于[0-9];②
\D则相反,匹配数字以外的任意字符。 -
\w匹配字母、数字和下划线①
\w来匹配字母、数字和下划线,等价于[A-Za-z0-9_];②
\W则相反,匹配字母、数字及下划线以外的任意字符。 -
\s匹配任何空白字符(不可见字符)\S则相反,匹配可见字符。 -
.匹配换行符以外的所有字符即:使用
(.|\n)即可匹配所有字符。 -
^匹配字符串的开头^ch匹配china的ch,而不匹配branch的ch。 -
$匹配字符串的结尾ch$匹配branch的ch,而不匹配china的ch; -
使用
\来转义特殊字符①如使用
\n来匹配换行符、\t匹配制表符,\\匹配\;②此外,
[]内的特殊字符将失去意义,只表示它的字符本身,如[.]不再能匹配换行符以外的所有字符,而是匹配.字符本身。
Ⅱ.量词
-
量词(也叫限定符)
字符 作用 备注 *重复 零次 或 更多次 相当于{0,}:任意个 +重复 一次 或 更多次 相当于{1,}:至少一个 ?重复 零次 或 一次 相当于{0,1}:最多一个 {n}重复 n次 {n, }重复 n次 或 更多次 {n, m}重复 n次 到 m次 (ab){3}来匹配ababab(cd){1,2}来匹配cd或cdcd -
两种重要的特殊匹配(借助量词的组合构成)
字符 作用 .* 贪婪匹配(以尽可能长的长度来匹配满足条件的子串) .*? 惰性匹配(以尽可能短的长度来匹配满足条件的子串) 接下来对比两者,假设待匹配的字符串为:
"I am a sentence who knows itself a sentence";贪婪匹配
(I.*sentence),返回:I am a sentence who knows itself a sentence;(匹配到了最后一个sentence)惰性匹配
(I.*?sentence),返回:I am a sentence。(只匹配到第一个sentence)
Ⅲ.修饰符
在正则表达式之外书写修饰符(将正则表达式写在
//之中)如
/ABCdef/i:表示在匹配ABCdef时忽略大小写
常见的修饰符:
| 名称 | 意义 | 描述 |
|---|---|---|
i | ignore-忽略大小写 | 匹配时忽略大小写 |
g | global-全局匹配 | 匹配字符串中的所有符合的子串 |
m | multi line-多行匹配 | 当使用了^或$后,使用m修饰符开启多行匹配模式可以让^和$去匹配每一行的开头或结尾;否则^和$只会去匹配整个字符串的开头或结尾 |
s | / | 让.现在能够匹配换行符\n |
1488

被折叠的 条评论
为什么被折叠?



