gpt4 book ai didi

java - 生成一个 Java 可用的正则表达式,在精确位置否定单词

转载 作者:行者123 更新时间:2023-12-02 06:30:04 26 4
gpt4 key购买 nike

我见过类似的问题,但不完全相同:我的问题是我想为 311 个字符的字符串生成一个 java-usable 正则表达式,该字符串在精确位置上没有某些字符:

直观的解决方案是这样的:

(.{104})(^OM)M(.{204})

但我知道,如果我必须否定整个单词,我必须使用前瞻:

(.{104})(?:(?!OM))M(.{204})

这个 RE 不起作用。

想法?

请记住,只有当字符串的位置 105 和 106 不同于“OM”且位置 107 等于“M”时,正则表达式才需要匹配。

是的,我只能使用正则表达式来做到这一点,是的,我既不能使用 ^ 也不能使用 $

致以诚挚的问候。

最佳答案

我不会使用正则表达式来完成此任务。只需使用 String API 就可以完成这项工作:

str.length() == 311 && !str.substring(104, 106).equals("OM") && str.charAt(106) == 'M'

如果您只想使用正则表达式,那么您必须稍微修改您的正则表达式。您正在使用负向后查找来检查 OM,但忽略接下来的 2 个字符。如果它们不是 OM,您实际上需要匹配它们:

(.{104})(?:(?!OM)..)M(.{204})

关于java - 生成一个 Java 可用的正则表达式,在精确位置否定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com