我有这三个正则表达式.他们单独工作,但我想将它们合并为一个单一的模式.
regex1 = [0-9]{16}
regex2 = [0-9]{4}[-][0-9]{4}[-][0-9]{4}[-][0-9]{4}
regex3 = [0-9]{4}[ ][0-9]{4}[ ][0-9]{4}[ ][0-9]{4}
Run Code Online (Sandbox Code Playgroud)
我用这个方法:
Pattern.compile(regex);
Run Code Online (Sandbox Code Playgroud)
合并它们的正则表达式字符串是什么?
您可以使用反向引用:
[0-9]{4}([ -]|)([0-9]{4}\1){2}[0-9]{4}
Run Code Online (Sandbox Code Playgroud)
只有当分隔符全部时才会匹配
\1意思是"这与第一个捕获组完全匹配- 括号中的表达式 - 匹配".
由于([ -]|)是该组,因此要匹配的模式的其他分隔符必须相同.
您可以进一步简化它:
\d{4}([ -]|)(\d{4}\1){2}\d{4}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |