-3

正则表达式可以识别序列并根据它执行操作吗?

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

如果有人帮助我更好地表达这个问题或建议链接,将不胜感激!

4

2 回答 2

3

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

if (eregi('[[:digit:]]{5,7}(?=string)', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}
于 2012-11-25T07:27:52.933 回答
1

我不了解 PHP,但对于提供反向引用的正则表达式引擎,这应该可以解决问题(使用 Javascript 样式的 RegExp 创建):

var reg = new RegExp("^.*(.{"+x+"})"+str);

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

/^.*(.{5})world/

在此字符串上运行时:somethinghelloworld,匹配的字符串将为hello.

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

于 2012-11-25T07:26:21.353 回答