为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕虎7371278 2022-07-27 20:44:54
我有以下正则表达式来验证字符串中的条件,我把它写在一个在线正则表达式验证器上,但是当我在我的 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)非常感谢任何帮助。
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

(^([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 支持这一点。


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信