快速修复使用正则表达式拆分字符串

时间:2009-12-12 16:34:09

标签: regex c#-3.0

我使用了以下

Regex RE = new Regex(@"'?([(\.\//\s\;\,\:\.\)]+)'?");

分割存储在xml文件中的表达式。

"NIGHT.set('/xs:Service/xs:Location[2]/xs:Res/protocol','HOPR','SP')";

由于单引号,它在阅读时会疯狂。我想摆脱xml文件中的单引号,将表达式更改为

"NIGHT.set(/xs:Service/xs:Location[2]/xs:Res/protocol,HOPR,SP)";

但是当我再次尝试regexp时,它大部分都有效,但是有一个条目 应用“(\”

的正则表达式后拆分块

所以它做得不对。我对regexp非常不满,任何人都可以很快 告诉我如何改善它。

感谢。 scope_creep

2 个答案:

答案 0 :(得分:1)

你试过regex coach吗?它是解决这类问题的一个非常方便的工具。

答案 1 :(得分:0)

这是你可以做到的一种方式:

    string s = "NIGHT.set('/xs:Service/xs:Location[2]/xs:Res/protocol','HOPR','SP')";
    s = s.Replace("'", "");
    Regex re = new Regex(@"^(.*)\((.*)\)$");
    Match match = re.Match(s);
    if (match.Success)
    {
        string function = match.Groups[1].Value;
        string[] parameters = match.Groups[2].Value.Split(',');
        // ...
    }