-1

我有这样的字符串abc+def(ghi)+jkl,我想得到{abc,ghi,jkl}正则表达式的结果。到目前为止,我发现:[a-z]+(?!\\()但它返回{abc,de,ghi,jkl}. 有谁知道如何编写正确的正则表达式?
例子:

var + var_s => { var, var_s }

var + 方法(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, 性别 ) => { var, something, 性别}

我需要将所有字符串都包含 'az Az _' 但不以(char 结尾。字符串:method(, method_name(, count(由于( .

4

3 回答 3

0
if (preg_match('/(\w+)/i', $subject, $regs)) {
    $result = $regs[0];
} else {
    $result = "";
}

(\w+)

选项:不区分大小写

匹配下面的正则表达式并将其匹配捕获到反向引用编号 1 «(\w+)»

匹配作为“单词字符”的单个字符(字母、数字和下划线)«\w+»

在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)«+»

(regexbuddy 是你的朋友!)

于 2013-03-11T14:48:45.567 回答
0

我在http://msdn.microsoft.com/en-us/library/az24scfc.aspx上找到了解决方案:

\b[a-zA-Z_]+(?!\()\b

于 2013-03-13T07:58:35.707 回答
0
if (preg_match('/\b([a-z]+)(?!\(|\))\b/i', $subject, $regs)) {
    $result = $regs[0];
} else {
    $result = "";
}
于 2013-03-13T12:53:24.643 回答