是否可以仅使用正则表达式来检测给定字符串是否为有效的正则表达式?
假设我有一些字符串,可能是有效的正则表达式,也可能不是。我希望有一个正则表达式来匹配那些对应于有效正则表达式的字符串。这有可能吗?或者我必须使用一些高级语法(即上下文无关语言)来检测这一点?如果我使用一些扩展版本的regexp,比如Perl regexp,会有影响吗?
如果可能,那么匹配regexp的regexp是什么?
发布于 2010-05-26 01:22:18
不,这不可能。这是因为有效的正则表达式涉及分组,这需要使用对齐的圆括号。
平衡分隔符不能与正则表达式匹配;它们必须与context-free grammar匹配。(该文章中的first example处理对齐括号。)
发布于 2010-05-26 01:28:58
发布于 2010-05-28 19:01:18
如果您的问题是“匹配所有有效的正则表达式”,答案(可能令人惊讶)是“是”。正则表达式.*匹配所有有效(和无效)正则表达式,但对于确定是否正在查找有效正则表达式非常无用。
然而,由于问题是“匹配所有且仅有效的正则表达式”,答案是(因为DVK和白金Azure“已经说了‘否’。
https://stackoverflow.com/questions/2906848
复制相似问题