PHP正则表达式-在字符串中查找字符串

时间:2018-07-13 15:45:32

标签: php regex

我需要确定一个字符串,该字符串在另一个字符串中可以包含1- 6#个符号,然后重新运行子字符串的开始位置和子字符串本身。

例如:

example ## string => [strpos=> 9, stren => 2]

到目前为止,我有这个:

/["#"]{1,6}/gm

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以将preg_match参数与preg_match_all一起使用(或PREG_OFFSET_CAPTURE获得多个匹配项):

$str = "example ## string";
if (preg_match('~#{1,6}~', $str, $m, PREG_OFFSET_CAPTURE)) {
    print_r($m);
}

请参见PHP preg_match reference:

  

PREG_OFFSET_CAPTURE
  如果传递了此标志,则对于每个匹配项,还将返回附加字符串偏移量。请注意,这会将 matches 的值更改为一个数组,其中每个元素都是一个数组,该数组由偏移量为 0 的匹配字符串及其字符串偏移量为 subject (位于偏移 1 处)。

请参见PHP demo,输出:

Array
(
    [0] => Array
        (
            [0] => ##
            [1] => 8
        )

)