The Fox is watching you.

初探正则表达式(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后面的exp1
  • exp1(?!exp2) 查找后面不是exp2的exp1
  • (?<!exp2)exp1 查找前面不是exp2的exp1
说实话,感觉这一部分乱七八糟的,只能多习惯了。

添加新评论