Java正则表达式边界匹配器
我正在读书。 当狗在上一个匹配结束后,而不是在字符串开头时,我如何才能找到它 例如:Java正则表达式边界匹配器,java,regex,boundary,Java,Regex,Boundary,我正在读书。 当狗在上一个匹配结束后,而不是在字符串开头时,我如何才能找到它 例如: \Gdog将在dogdog中找到2条匹配项,但我不想捕捉第一条狗,因为它不在前一条匹配项之后(之前没有匹配项) 为什么\Gdog与第一只狗匹配,而我们之前没有匹配 还有一个问题:输入的开始有一个特殊符号:\A。我怎样才能否定它的意思,即“不是在输入的开始”。我试过了 \a,但这不起作用。那么,\a的含义是什么 请提前感谢。正在记录\G标记。在第一个匹配中,由于它没有“上一个匹配”,所以它在字符串的开头匹配。因此
\Gdog
将在dogdog
中找到2条匹配项,但我不想捕捉第一条狗,因为它不在前一条匹配项之后(之前没有匹配项)
为什么\Gdog
与第一只狗匹配,而我们之前没有匹配
还有一个问题:输入的开始有一个特殊符号:\A
。我怎样才能否定它的意思,即“不是在输入的开始”。我试过了
\a
,但这不起作用。那么,\a
的含义是什么
请提前感谢。正在记录\G
标记。在第一个匹配中,由于它没有“上一个匹配”,所以它在字符串的开头匹配。因此,它的实际含义是“在输入开始时匹配或在前一个匹配之后匹配”
您应该注意,如果\Gdog
在字符串开头不匹配,那么它就根本不会匹配“dogdog”。第一个“dog”位于字符串的开头,因此它不匹配。第二只狗不匹配,因为第一只狗不匹配
至于你的第二个问题,反向查找将允许你执行与\a
相反的操作:“(?标记\G
的文档不足。在第一个匹配中,由于它没有“上一个匹配”,所以它在字符串的开头匹配。因此它的实际含义是”在输入开始或上一次匹配后进行匹配”
您应该注意,如果\Gdog
在字符串开头不匹配,它将根本不匹配“dogdog”。第一个“dog”在字符串开头,因此它不匹配。第二个dog不匹配,因为第一个dog不匹配
至于你的第二个问题,消极的回望会让你做与\a
:“(?“再问一个问题”-请试着在每篇文章中只问一个问题。可能是@AndyBrown的重复,我知道我应该只发布我的问题,但实际上它与第一个问题结合在一起(因为第一个问题我要求解决,所以第二个问题是找到具体的解决方案)。我写了第二个问题,因为可读性。谢谢链接。“还有一个问题”-请尝试每个帖子只问一个问题。可能是@AndyBrown的重复,我知道我应该只发布我的问题,但实际上它与第一个问题结合在一起(因为我要求的第一个问题是解决方案,所以第二个问题是找到具体的解决方案)我写了第二个问题,因为它的可读性。谢谢你的链接。非常感谢。在我看来,文档是错误的,因为正如你所说(这是真的)“在输入的开始或之前的匹配之后匹配”。非常感谢。在我看来,文档是错误的,因为正如你所说(这是真的)“在输入开始或上一次匹配后匹配”。