初探正则表达式(2)
正则表达式初探的第二部分。
定位符
^
匹配输入字符串开始的位置$
匹配输入字符串结尾的位置\b
匹配一个单词边界,即字雨空格间的位置\B
非单词边界匹配
不能将限定符和定位符一起使用。
搜索章节可以:
/^Chapter [1-9][0-9]{0,1}/
但真正的章节标题不仅出现在行的开始处,而且还是该行中仅有的文本:
/^Chapter [1-9][0-9]{0,1}$/
对于\b
下面表达式匹配Chapter开头的三个字母:
/\bCha/
而下面表达式匹配Chapter结尾的三个字母:
/ter\b/
对于\B
下面表达式匹配Chapter中的apt,而不匹配aptitude开头的apt:
/\Bapt/
\b
区别于\B
前者匹配的是单词边界的,表现上是开头和结尾;而后者则相反,表现在匹配单词内部
选择
用( )
将所有选择项括起来,相邻选择之间用|
隔开。( )
会把每个分组里的匹配值保存起来。下面的表达式将匹配以一个数字开头、多个字母结尾
的内容:
/([1-9])([a-z]+)/
exp1(?=exp2)
查找exp2前的exp1(?<=exp2)exp1
查找exp2后面的exp1exp1(?!exp2)
查找后面不是exp2的exp1(?<!exp2)exp1
查找前面不是exp2的exp1
说实话,感觉这一部分乱七八糟的,只能多习惯了。
评论区(暂无评论)