Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 基于字符数的正则表达式匹配?_Php_Regex - Fatal编程技术网

Php 基于字符数的正则表达式匹配?

Php 基于字符数的正则表达式匹配?,php,regex,Php,Regex,正则表达式能否识别序列并基于它执行操作 例如:我需要正则表达式搜索$string,然后根据$string前面的x个字符数进行计数,并提取一些数据 如果有人能帮我更好地回答这个问题或建议链接,我将不胜感激 我不了解PHP,但对于提供反向引用的正则表达式引擎,这应该可以做到(使用Javascript风格的正则表达式创建): 如果x为5,str为“world”,则正则表达式将如下所示: /^.*(.{5})world/ 在以下字符串上运行时:somethingheloworld,匹配的字符串将是he

正则表达式能否识别序列并基于它执行操作

例如:我需要正则表达式搜索$string,然后根据$string前面的x个字符数进行计数,并提取一些数据


如果有人能帮我更好地回答这个问题或建议链接,我将不胜感激

我不了解PHP,但对于提供反向引用的正则表达式引擎,这应该可以做到(使用Javascript风格的正则表达式创建):

如果x为5,str为“world”,则正则表达式将如下所示:

/^.*(.{5})world/
在以下字符串上运行时:
somethingheloworld
,匹配的字符串将是
hello


我不知道PHP的正则表达式引擎支持什么,但这是一个非常常见的理论正则表达式扩展。

您正在寻找正则表达式中名为lookahead的东西。 例如,只有在字符串前面有5到7位数字时,下面的正则表达式才会匹配 当然,您需要用自己的var替换“string”

if (eregi('[[:digit:]]{5,7}(?=string)', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}

x
是常量,还是根据字符串内容计算得出的?
if (eregi('[[:digit:]]{5,7}(?=string)', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}