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