Java RegEx-行末尾的查找组
表达式位于行末尾时不匹配:Java RegEx-行末尾的查找组,java,regex,Java,Regex,表达式位于行末尾时不匹配: (\b%%\b([^%])*\b%%\b) 测试字符串: djwk%%text%%doqdojd%%text.text.text%%kjwldjdflkljwfe%%body.text.text%% 因此: djwk_doqdojd_kjwldjdflkljwfe%%body.text.text%% 但最后一个没有(测试) 我缺少什么?假设您希望得到如下结果: djwk_doqdojd_kjwldjdflkljwfe_ 然后,只需尝试以下正则表达式: (\b%
(\b%%\b([^%])*\b%%\b)
测试字符串:
djwk%%text%%doqdojd%%text.text.text%%kjwldjdflkljwfe%%body.text.text%%
因此:
djwk_doqdojd_kjwldjdflkljwfe%%body.text.text%%
但最后一个没有(测试)
我缺少什么?假设您希望得到如下结果:
djwk_doqdojd_kjwldjdflkljwfe_
然后,只需尝试以下正则表达式:
(\b%%\b([^%])*\b%%)
说明:
您提供的正则表达式上的最后一个“\b”强制字符“%%”不能是目标字符串上的最后一个元素
希望这对你有帮助
干杯,尼古拉斯。奇怪。。。它是有效的。。。但为什么会发生这种情况\b没有检测到eol?实际上,不是真的。。。“\b”匹配。因此,当您指定在双精度“%”之后必须有一个成功匹配时,它与传递的字符串末尾的匹配不匹配。我建议你看一下,在那里你可以理解你的正则表达式的每一部分。干杯