正则表达式 知识量:10 - 22 - 55
使用正则表达式处理文本格式问题时,如果涉及可选的模式匹配时(例如:对有某个字符或没有某个字符采取不同的处理方法),就需要在正则表达式中嵌入条件。
示例文本:匹配正确的电话号码。
010-25689856 (0531)56236541 0755 62235641 (021-55254126
正则表达式:
\(?\d{3,4}\)?-?\d{8}
结果:
Match | Position | Length |
---|---|---|
010-25689856 | 0 | 12 |
(0531)56236541 | 14 | 14 |
(021-55254126 | 45 | 13 |
以上正则表达式显然是不能准确匹配正确的电话号码的,因为“(021-55254126”也被匹配出来了。要解决这个问题就需要使用嵌入条件。
正则表达式里的条件要用?来定义。
正则表达式中使用“?”的地方还包括:
? 用于匹配前一个字符或表达式,表示匹配零个或一个字符。
?=和?<= 用于匹配前面或后面的文本,即向前查找和向后查找。
嵌入条件同样使用“?”来解决以下问题:
根据一个回溯引用来进行条件处理。
根据一个前后查找来进行条件处理。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6