自定义正则表达式模式

时间:2014-03-05 13:02:43

标签: php preg-split

使用preg_split获取类似内容的正确模式是什么。

输入:

Src.[VALUE1] + abs(Src.[VALUE2])

输出:

Array ( 
    [0] => Src.[VALUE1] 
    [1] => Src.[VALUE2]
) 

3 个答案:

答案 0 :(得分:0)

在这种情况下,使用preg_split更有意义,而不是使用preg_match_all

preg_match_all('/\w+\.\[\w+\]/', $str, $matches);
$matches = $matches[0];

$matches的结果:

Array
(
    [0] => Src.[VALUE1]
    [1] => Src.[VALUE2]
)

答案 1 :(得分:0)

这个正则表达式应该没问题

Src\.\[[^\]]+\]

但我建议使用preg_split

而不是preg_match_all
$string = 'Src.[VALUE1] + abs(Src.[VALUE2])';
$matches = array();
preg_match_all('/Src\.\[[^\]]+\]/', $string, $matches);

您正在寻找的所有匹配都将绑定到$matches[0]数组。

答案 2 :(得分:0)

我猜preg_match_all就是你想要的。这有效 -

$string = "Src.[VALUE1] + abs(Src.[VALUE2])";
$regex = "/Src\.\[.*?\]/";
preg_match_all($regex, $string, $matches);
var_dump($matches[0]);
/*
    OUTPUT
*/
array
  0 => string 'Src.[VALUE1]' (length=12)
  1 => string 'Src.[VALUE2]' (length=12)