所以我正在查看具有不同分隔符的不同数字,并且我想查找具有相同分隔符的所有数字.
基本上,我想要以下内容
123+456+7890 // MATCH
123-456-7890 // MATCH
123.456.7890 // MATCH
123+456-7890 // FAILURE
Run Code Online (Sandbox Code Playgroud)
我目前使用的正则表达式是
\d{3}[+-.]\d{3}[+-.]\d{4}
Run Code Online (Sandbox Code Playgroud)
但是,它会匹配具有不同分隔符的数字序列.我不想为这样的事情使用一个巨大的OR,因为现实生活相当于有更多的角色可以适合那里.
有没有办法在多个位置匹配相同的字符?
您可以使用捕获的组和反向引用来确保再次使用相同的分隔符.
^\d{3}([+.-])\d{3}\1\d{4}$
Run Code Online (Sandbox Code Playgroud)
([+.-]) 这里我们捕获组#1中的分隔符\1 这里我们使用相同分隔符的反向引用您可以使用像这样的反向引用:
\d{3}([+.-])\d{3}\1\d{4}
Run Code Online (Sandbox Code Playgroud)
[+-.]保存在捕获组内,以便稍后引用。\1是对第一个捕获组的反向引用,在本例中是[+-.]这样,它将确保运算符与前一个捕获组相同。| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |