我有一个字符串。如何检查字符串是正则表达式还是包含正则表达式还是正常字符串?
您唯一可以做的可靠检查是,如果String语法正确的是正则表达式:
String
boolean isRegex; try { Pattern.compile(input); isRegex = true; } catch (PatternSyntaxException e) { isRegex = false; }
但是请注意,true即使对于像Hello World和这样的字符串,也会导致这种情况I'm not a regex,因为从技术上讲,它们是有效的正则表达式。
true
Hello World
I'm not a regex
唯一会返回的false情况是不是有效正则表达式的字符串,例如[unclosed character class或(unclosed group或+。
false
[unclosed character class
(unclosed group
+