在别处引用了一部分正则表达式代码
Referencing a part of regular expression code elsewhere
我有一个像这样的正则表达式
preg_match_all('@(1[0-9]+) (1[0-9]+)@'...
如果在以下字符串中释放:
Speed 1000 11234
Weight 1324 1456
它returns两场比赛
1000 11234
和
1324 1456
有没有办法在正则表达式后面的第一个括号中反向引用正则表达式代码?
例如:
preg_match_all('@(1[0-9]+) (\backRef1)@'... // This pseudocode is identical to @(1[0-9]+) (1[0-9]+)@
我不是在寻找匹配参考 \1,因为它只适用于像 123 123
这样的镜像匹配
我也不想将正则表达式字符串保存到一个变量中,然后将其粘贴到里面 "@($pattern) ($pattern)@"
我想直接在正则表达式本身中引用它。
这可能吗?
谢谢
参见 Regular Expression Subroutines。
您可以通过 \g<1>
或 (?1)
来引用第一组
(1[0-9]+) (?1)
用于命名捕获组的更新:
(?<test>1[0-9]+) \g'test'
还有 define
语法可用。
我有一个像这样的正则表达式
preg_match_all('@(1[0-9]+) (1[0-9]+)@'...
如果在以下字符串中释放:
Speed 1000 11234
Weight 1324 1456
它returns两场比赛 1000 11234 和 1324 1456
有没有办法在正则表达式后面的第一个括号中反向引用正则表达式代码?
例如:
preg_match_all('@(1[0-9]+) (\backRef1)@'... // This pseudocode is identical to @(1[0-9]+) (1[0-9]+)@
我不是在寻找匹配参考 \1,因为它只适用于像 123 123
这样的镜像匹配我也不想将正则表达式字符串保存到一个变量中,然后将其粘贴到里面 "@($pattern) ($pattern)@"
我想直接在正则表达式本身中引用它。
这可能吗?
谢谢
参见 Regular Expression Subroutines。
您可以通过 \g<1>
或 (?1)
(1[0-9]+) (?1)
用于命名捕获组的更新:
(?<test>1[0-9]+) \g'test'
还有 define
语法可用。