一尘不染

如何检查字符串是否为正则表达式

java

我有一个字符串。如何检查字符串是正则表达式还是包含正则表达式还是正常字符串?


阅读 477

收藏
2020-12-03

共1个答案

一尘不染

您唯一可以做的可靠检查是,如果String语法正确的是正则表达式:

boolean isRegex;
try {
  Pattern.compile(input);
  isRegex = true;
} catch (PatternSyntaxException e) {
  isRegex = false;
}

但是请注意,true即使对于像Hello World和这样的字符串,也会导致这种情况I'm not a regex,因为从技术上讲,它们是有效的正则表达式。

唯一会返回的false情况是不是有效正则表达式的字符串,例如[unclosed character class(unclosed group+

2020-12-03