是否可以使用正则表达式解析正则表达式字符串

Is it possible to parse regex strings with a regex

本文关键字:正则表达式 字符串 是否 可以使      更新时间:2023-09-26

只是出于好奇,是否可以使用单个正则表达式解析完全由随机但有效的正则表达式组成的字符串?

给定正则表达式字符串:

<[^>]*>'xA9

解析为:

<[^>]*>
'xA9

其中第一个匹配 html,第二个匹配版权符号。

编辑:我在SO上发现了一个类似的问题,声称这可能是可能的。在这里,我指的是JavaScript ECMA-262中的正则表达式。

不,这是不可能的:正则表达式语言允许用括号表示捕获组和非捕获组、环视等的表达式,其中括号必须平衡。即使在理论上,也不可能编写一个正则表达式来验证括号在给定字符串中是否平衡。如果没有这样做的能力,您将不知道一个正则表达式在哪里结束,另一个正则表达式从哪里开始。

一般来说,正则表达式语法相对复杂。要了解它有多复杂,请查看 Java Pattern类源代码中的解析器。