我有这样的字符串abc+def(ghi)+jkl
,我希望得到{abc,ghi,jkl}
作为正则表达式的结果。到目前为止,我发现:[a-z]+(?!\\()
但它返回{abc,de,ghi,jkl}
。有谁知道如何写正确的正则表达式?
示例:
var + var_s => { var,var_s }
var + method(arg)+ var_s => { var,arg,var_s }
string * string_s + method_name(arg,arg_s)=> { string,string_s,arg,arg_s }
var + 2 *(3 + something)+ count(3,gender)=> { var,某事,性别}
我需要将所有字符串组成'a-z A-z _'但不以(
字符结尾。字符串:由于(。
method(, method_name(, count(
答案 0 :(得分:0)
if (preg_match('/(\w+)/i', $subject, $regs)) {
$result = $regs[0];
} else {
$result = "";
}
(\ W +)
选项:不区分大小写
匹配下面的正则表达式并将其匹配捕获到反向引号1«(\ w +)»
匹配单个字符“字符”(字母,数字和下划线)«\ w +»
在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)«+»
(regexbuddy是你的朋友!)
答案 1 :(得分:0)
我在http://msdn.microsoft.com/en-us/library/az24scfc.aspx找到了解决方案:
\ B [A-ZA-Z _] +(?!\()\ B'/ P>
答案 2 :(得分:0)
if (preg_match('/\b([a-z]+)(?!\(|\))\b/i', $subject, $regs)) {
$result = $regs[0];
} else {
$result = "";
}