正则表达式 知识量:10 - 22 - 55
在文本中通常会包含大量的换行符,在每行中匹配具体的字符串需要使用分行匹配模式。具体来讲就是使用(?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.*
结果:
Match | Position | Length |
---|---|---|
Jan says:"Sorry ,but he is out." | 32 | 33 |
Jan says:"Hello Bob.I am Jan.Do you want to leave a message." | 94 | 62 |
需要特别注意的是:
有许多正则表达式的实现(即许多编程语言)不支持(?m),使用是应当先进行测试。
对于使用\A和\Z作为字符串开始和结束标识时,分行匹配模式标记(?m)是不起作用的。
如果不想匹配单词的边界,可以使用\B。其作用与\b正好相反。
例如匹配单独的“-”本身。
文本:
"-" is used for a-z or A-Z.
正则表达式:
\B-\B
结果:
Match | Position | Length |
---|---|---|
- | 1 | 1 |
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6