gpt4 book ai didi

java - 正则表达式适用于除前面没有字符串的特定字符之外的所有内容

转载 作者:行者123 更新时间:2023-12-01 19:52:41 35 4
gpt4 key购买 nike

我很不幸地得到了一个正则表达式,它可以处理除了前面没有特定字符串的特定字符之外的所有内容。

例如这个字符串:

Mr. Jones likes fish.

应该这样匹配:

Mr. Jones likes fish

而不是例如:

Mr

我认为这应该很容易,但它就是行不通。我已经让它在点上获得正确的匹配:

(?<!Mr)\.

但是互补匹配不起作用。我试过这个:

(?<!Mr)[^.]*

因为我认为光标此时会位于点上,并且看到它是由“Mr”进行的,并且不会匹配。但确实如此。

像这样:

(^((?<!Mr).))*

但是该正则表达式中的lookbehind不再被识别为一个,它只是尝试匹配每个字符。

我已经看到了this答案,但我找不到任何可以帮助我的东西。

最佳答案

在我看来,您想要匹配除 . 之外的任何字符异常(exception)的是句点前面有 Mr所以你可以使用 alternation (或可选组)和 lookbehind .

(?:[^.]+|(?<=Mr)\.)+

作为 Java 字符串:"(?:[^.]+|(?<=Mr)\\.)+"

Here is a demo at regex101 (非 Java)

关于java - 正则表达式适用于除前面没有字符串的特定字符之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50786458/

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