2013-04-05 89 views
-1

我试图解析字符串并提取一些值。正则表达式 - 逃脱“

突然,我坚持用的符号在这里:

下面是一些代码,来形容我的情况:

// example string 
$string = "@set('var', 'value')"; 

// regex that I'm using to extract the values 
$regex = '@set\((.+),(.+)\)/' 

// result that I'm getting 
array("'var'", "'value'") 

// desired result 
array("var", "value") 

任何想法?

+0

如果您希望这些被转义,您在显示转义值时的做法是什么? – 2013-04-05 08:11:38

回答

6

您与.+规则匹配任何字符。如果你不想引用结果,请避开它​​们。重写规则:

$regex = "/@set\('([^']+)',\s*'([^']+)'\)/" 
+0

这不取两个值之间的空白到acocunt。 – 2013-04-05 08:11:51

+0

更新的规则来解决空白缺失。 – Ander2 2013-04-05 08:12:44

+0

非常感谢您!这个伎俩。你已经救了我一个小时的挫折:) – 2013-04-05 08:18:01