For*_*imo 7 java regex regex-group
我有一些以编程方式组装的巨大正则表达式,就像这样
(A)|(B)|(C)|...
Run Code Online (Sandbox Code Playgroud)
每个子模式都在其捕获组中。当我得到匹配项时,如何确定哪个组匹配而不对每个组进行线性测试group(i)以查看它返回非空字符串?
如果您的正则表达式是以编程方式生成的,为什么不以编程方式生成n 个单独的正则表达式并依次测试每个正则表达式呢?除非它们共享一个共同的前缀并且 Java 正则表达式引擎很聪明,否则所有替代方案都会经过测试。
更新:我刚刚浏览了 Sun Java 源代码,特别是 java.util.regex.Pattern$Branch.match(),这也只是对所有替代方案进行线性搜索,依次尝试每个替代方案。使用 Branch 的其他地方并不建议对公共前缀进行任何类型的优化。
| 归档时间: |
|
| 查看次数: |
1907 次 |
| 最近记录: |