我知道如何使用preg_match和preg_match_all来查找给定字符串中正则表达式模式的实际匹配,但我写的函数不仅需要匹配的文本,而且能够遍历字符串AROUND匹配. .
因此,我需要根据正则表达式模式知道字符串中匹配的位置.
我似乎无法找到类似于strpos()的函数,允许正则表达式...任何想法?
Lin*_*een 75
您可以使用该标志PREG_OFFSET_CAPTURE:
preg_match('/bar/', 'Foobar', $matches, PREG_OFFSET_CAPTURE);
var_export($matches);
Run Code Online (Sandbox Code Playgroud)
结果是:
array (
0 =>
array (
0 => 'bar',
1 => 3, // <-- the string offset of the match
),
)
Run Code Online (Sandbox Code Playgroud)
preg_match有一个可选的标志,PREG_OFFSET_CAPTURE它记录了原始'haystack'中匹配的出现的字符串位置.请参阅"标志"部分:http://php.net/preg_match
| 归档时间: |
|
| 查看次数: |
29645 次 |
| 最近记录: |