如何在PHP中获取正则表达式(PCRE)的结束位置?
I使用带有PREG_OFFSET_CAPTURE标志的matches optionnal参数。 我得到起始偏移量和匹配的表达式。。。。 在Java正则表达式中,我找不到获取匹配表达式结尾的选项。 有没有解决办法,或者我最后的办法是:偏移量+字符串匹配?只要放一个。在正则表达式的末尾,获取该正则表达式的捕获偏移量 您可以匹配\G-这是上次匹配后正则表达式引擎的位置如何在PHP中获取正则表达式(PCRE)的结束位置?,php,regex,pcre,Php,Regex,Pcre,I使用带有PREG_OFFSET_CAPTURE标志的matches optionnal参数。 我得到起始偏移量和匹配的表达式。。。。 在Java正则表达式中,我找不到获取匹配表达式结尾的选项。 有没有解决办法,或者我最后的办法是:偏移量+字符串匹配?只要放一个。在正则表达式的末尾,获取该正则表达式的捕获偏移量 您可以匹配\G-这是上次匹配后正则表达式引擎的位置 然而,我觉得这并没有比你最后的方法更好。那有什么不好 如果PHP与Perl类似,那么所有匹配项都应该有两个偏移量数组 在Perl中,它
然而,我觉得这并没有比你最后的方法更好。那有什么不好 如果PHP与Perl类似,那么所有匹配项都应该有两个偏移量数组 在Perl中,它的@和@+。。索引1。。是捕获组偏移量。索引0是总匹配偏移量
if ('012345678' =~ /4/ ) {
print "Match start = $-[0], match end = $+[0]\n";
}
打印匹配开始=4,匹配结束=5我有类似的问题,但无法使用
strlen(matching_string)
原因匹配字符串是具有可变数量字符的正则表达式
相反,我使用preg_替换匹配的字符串并从那里开始工作
我想这和@NikiC的建议很相似,但我花了一段时间才弄明白
希望这能有所帮助。聪明,但如果后面没有数据呢?。看来不行了。@millebi我用lookback:?@millebi:如果可能是结尾,你可以用。|$。就像你一直做的那样@millebii:空匹配将是最通用的选项。以前从未使用过。您的意思是\G将返回该位置,还是说reg1\Greg2将使reg2在reg1之后匹配。需要查看文档。在Java中,你可以同时获得结束和开始,所以我一直在寻找相同的功能。。。它与PHP preg_match配合使用吗???neet想试试。是的,这是重点,但它们是不可接近的。你没有真正回答这个问题。