我正在尝试以以下模式匹配电话号码:
9 99 99 99 99
0999999999
11 0999999999
9 9999 9999
Run Code Online (Sandbox Code Playgroud)
但不是以下:
9 99 99 99 99 (two spaces)
9 99\n99 99 99
Run Code Online (Sandbox Code Playgroud)
因此,我想匹配 7 到 12 位数字和它们之间的可选空格,但不是多个空格的序列。
到目前为止,我想出了"[\d ?]{7,12}"
,但它并不真正符合要求,因为空格被计入 {7,12} 并且它还匹配两个空格序列。
[\d ?]{7,12}
是匹配 7 到 12 位数字、空格或?
字符的模式。它可以匹配一个???????
字符串,因为?
它不是一个量词,而在字符类中声明时只是一个问号符号。
如果将其更改为(?:\d ?){7,12}
,则可以部分解决问题,末尾的空格。我建议使用
\b\d(?: ?\d){6,11}\b
Run Code Online (Sandbox Code Playgroud)
查看正则表达式演示
单词边界\b
将确保您只匹配整个单词。
细节
\b
- 前导词边界\d
- 一个数字(?: ?\d){6,11}
- 6 到 11 个连续的序列
?
- 一个可选的空间\d
- 一位数\b
- 尾随词边界。 归档时间: |
|
查看次数: |
4643 次 |
最近记录: |