使用前瞻正则表达式时出现模式异常

我有以下正则表达式来验证字符串中的条件,我把它写在一个在线正则表达式验证器上,但是当我在我的 Java 代码中使用它时,我得到了一个异常:

"(^([a-z]{1,6})(?(?=(_))(([_])([0-9]{0,4})?)|[a-zA-Z]{0,})[a-zA-Z]{0,}?@sample[.]com)"

异常是线程“main”中的异常 java.util.regex.PatternSyntaxException: Unknown inline modifier near index 16 (^([az]{1,6})(?(?=( ))(([ ])([ 0-9]{0,4})?)|[a-zA-Z]{0,})[a-zA-Z]{0,}?@sample[.]com)

非常感谢任何帮助。


慕虎7371278
浏览 144回答 1
1回答

犯罪嫌疑人X

(^([a-z]{1,6})(?(?=(_))(([_])([0-9]{0,4})?)|[a-zA-Z]{0,})[a-zA-Z]{0,}?@sample[.]com)                |                  ^ --- if clause is not supported in JAVA你的问题是因为这个(?(?=)。如果您的意思是它是非捕获组,那么它应该是(?:(?=)Java 不支持if 子句 (?(?=))。PCRE 支持这一点。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java