向后看期间的正则表达式匹配

我正在使用下面的正则表达式来匹配字符串;我期待以下结果


正则表达式 ^.*(?<!abc)(?<!def)(?<!ghi).xyz.co.*


不匹配


    ghi.xyz.org

    ghi-hipqr.xyz.org

    abc-hipqr.xyz.org

比赛


qrs.xyz.org

qrs-hipqr.xyz.org

但是,ghi-hipqr.xyz.org匹配正则表达式(它不应该匹配,因为字符串中存在字符串 ghi。我该如何修复它?


噜噜哒
浏览 151回答 1
1回答

守候你守候我

它失败了,因为ghi不在.xyz.您的字符串之前。Java(像许多正则表达式引擎一样)不支持可变长度负长度后视断言。您可以改用这个否定的前瞻表达式:^(?!.*\b(?:abc|def|ghi)\b).*\.xyz\.org.*$
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java