Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中获取正则表达式(PCRE)的结束位置?_Php_Regex_Pcre - Fatal编程技术网

如何在PHP中获取正则表达式(PCRE)的结束位置?

如何在PHP中获取正则表达式(PCRE)的结束位置?,php,regex,pcre,Php,Regex,Pcre,I使用带有PREG_OFFSET_CAPTURE标志的matches optionnal参数。 我得到起始偏移量和匹配的表达式。。。。 在Java正则表达式中,我找不到获取匹配表达式结尾的选项。 有没有解决办法,或者我最后的办法是:偏移量+字符串匹配?只要放一个。在正则表达式的末尾,获取该正则表达式的捕获偏移量 您可以匹配\G-这是上次匹配后正则表达式引擎的位置 然而,我觉得这并没有比你最后的方法更好。那有什么不好 如果PHP与Perl类似,那么所有匹配项都应该有两个偏移量数组 在Perl中,它

I使用带有PREG_OFFSET_CAPTURE标志的matches optionnal参数。 我得到起始偏移量和匹配的表达式。。。。 在Java正则表达式中,我找不到获取匹配表达式结尾的选项。 有没有解决办法,或者我最后的办法是:偏移量+字符串匹配?

只要放一个。在正则表达式的末尾,获取该正则表达式的捕获偏移量

您可以匹配\G-这是上次匹配后正则表达式引擎的位置


然而,我觉得这并没有比你最后的方法更好。那有什么不好

如果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想试试。是的,这是重点,但它们是不可接近的。你没有真正回答这个问题。