出于好奇,是否可以解析一个完全由随机但有效的正则表达式组成的字符串和一个正则表达式?
给出正则表达式字符串:
<[^>]*>\xA9
解析为:
<[^>]*>
\xA9
其中第一个匹配html,第二个匹配版权符号。
编辑: 我在SO发现了一个类似的问题,声称这可能是可能的。在这里,我指的是仅使用JavaScript ECMA-262中的正则表达式。
答案 0 :(得分:2)
不,这是不可能的:正则表达式语言允许括号表达式表示捕获和非捕获组,外观等,其中必须平衡括号。即使在理论上也不可能编写一个正则表达式来验证括号在给定字符串中是否平衡。如果没有这样做的能力,你就不会知道一个正则表达式结束而另一个正在开始。
一般来说,正则表达式语法相对复杂。要了解它的复杂程度,请查看Java Pattern
类源代码中的解析器。