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

Sau*_*mar 14 java regex

我有一个字符串.我如何检查字符串是正则表达式还是包含正则表达式,或者它是普通字符串?

Joa*_*uer 17

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

boolean isRegex;
try {
  Pattern.compile(input);
  isRegex = true;
} catch (PatternSyntaxException e) {
  isRegex = false;
}
Run Code Online (Sandbox Code Playgroud)

但是请注意,这将导致true即使字符串喜欢Hello WorldI'm not a regex,因为从技术上它们是有效的正则表达式.

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

  • @Saurabh:那么你有更大的权力,但我同意@Sam并假设你只推迟了真正的问题. (2认同)