正则表达式

正则表达式 知识量:10 - 22 - 55

6.2 分行匹配><

分行匹配模式- 6.2.1 -

在文本中通常会包含大量的换行符,在每行中匹配具体的字符串需要使用分行匹配模式。具体来讲就是使用(?m)标记,使匹配进入分行匹配模式。

例如:找到Jan说话的句子。

示例文本:

Bob says:"Hello.Is that Tom? "
Jan says:"Sorry ,but he is out."
Bob says:"My name is Bob."
Jan says:"Hello Bob.Do you want to leave a message."

正则表达式:

(?m)^jan.*

结果:

MatchPositionLength
Jan says:"Sorry ,but he is out."3233
Jan says:"Hello Bob.I am Jan.Do you want to leave a message."9462

需要特别注意的是:

  • 有许多正则表达式的实现(即许多编程语言)不支持(?m),使用是应当先进行测试。

  • 对于使用\A和\Z作为字符串开始和结束标识时,分行匹配模式标记(?m)是不起作用的。

不匹配边界- 6.2.2 -

如果不想匹配单词的边界,可以使用\B。其作用与\b正好相反。

例如匹配单独的“-”本身。

文本:

"-" is used for a-z or A-Z.

正则表达式:

\B-\B

结果:

MatchPositionLength
-11