正则表达式

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

10.1 为什么要嵌入条件><

为什么要嵌入条件- 10.1.1 -

使用正则表达式处理文本格式问题时,如果涉及可选的模式匹配时(例如:对有某个字符或没有某个字符采取不同的处理方法),就需要在正则表达式中嵌入条件。

示例文本:匹配正确的电话号码。

010-25689856
(0531)56236541
0755 62235641
(021-55254126

正则表达式:

\(?\d{3,4}\)?-?\d{8}

结果:

MatchPositionLength
010-25689856012
(0531)562365411414
(021-552541264513

以上正则表达式显然是不能准确匹配正确的电话号码的,因为“(021-55254126”也被匹配出来了。要解决这个问题就需要使用嵌入条件。

如何嵌入条件- 10.1.2 -

正则表达式里的条件要用?来定义。

正则表达式中使用“?”的地方还包括:

  • ? 用于匹配前一个字符或表达式,表示匹配零个或一个字符。

  • ?=和?<= 用于匹配前面或后面的文本,即向前查找和向后查找。

嵌入条件同样使用“?”来解决以下问题:

  1. 根据一个回溯引用来进行条件处理。

  2. 根据一个前后查找来进行条件处理。