gpt4 book ai didi

Java正则表达式边界匹配器

转载 作者:行者123 更新时间:2023-12-01 18:12:12 26 4
gpt4 key购买 nike

我正在阅读The Java™ Tutorials, Regular Expressions, Boundary Matchers 。当 dog 位于上一场比赛结束之后,而不是位于字符串开头时,如何找到它。

例如:\Gdog 将在 dogdog 中找到 2 个匹配项,但我不想捕获第一个 dog 因为它不在上一个匹配项之后(有没有之前的匹配)。

当我们没有之前的匹配时,为什么\Gdog 匹配第一个dog

还有一个问题:输入开始有一个特殊符号:\A。我怎样才能否定它的含义,即“不在输入开始时”。我尝试过\a,但这不起作用。还有,\a 的含义是什么?

提前致谢。

最佳答案

\G标记的记录不足。在第一个匹配中,由于它没有“前一个匹配”,因此它在字符串的开头匹配。所以它的实际含义是“在输入的开头或上一个匹配之后匹配”。

您应该注意,如果 \Gdog在字符串的开头不匹配,它根本不会匹配“dogdog”。第一个“dog”位于字符串的开头,因此不匹配。第二条狗不匹配,因为第一条狗不匹配......

至于你的第二个问题,消极的lookbehind将允许你做与\A相反的事情。 :"(?<!\\A)" 。小写“标记”并不总是与大写“标记”相反。 Pattern documentation列表\a作为“响铃字符”,这意味着它将匹配 \u0007在输入中。

关于Java正则表达式边界匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32156036/

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