C# 用于拆分字符串的正则表达式

C# 用于拆分字符串的正则表达式,c#,regex,C#,Regex,我正在寻找正则表达式,以便在输入为以下任何一项时,分别以“HELLO”和“WORLD”的形式获得匹配: "HELLO", "WORLD" "HELL"O"", WORLD" "HELL,O","WORLD" 我尝试了几种组合,但似乎没有一种适合所有场景 我希望让我的c#代码执行如下操作: string pattern = Regex Pattern; // input here could be any one of the strings given above foreach (Match

我正在寻找正则表达式,以便在输入为以下任何一项时,分别以
“HELLO”
“WORLD”
的形式获得匹配:

"HELLO", "WORLD"
"HELL"O"", WORLD"
"HELL,O","WORLD"
我尝试了几种组合,但似乎没有一种适合所有场景

我希望让我的c#代码执行如下操作:

string pattern = Regex Pattern;
// input here could be any one of the strings given above
foreach (Match match in Regex.Matches(input, pattern))
{
   // first iteration would give me Hello
   // second iteration would give me World
}
试试这个:

Regex.Match(input, @"^WORLD|HELL[""|O|,]?O[""|O|,]$").Success
试试这个:

Regex.Match(input, @"^WORLD|HELL[""|O|,]?O[""|O|,]$").Success

我总是发现使用像这样的在线正则表达式测试仪很有用

我总是发现使用像这样的在线正则表达式测试仪很有用

如果你只在《你好与世界》上需要它,我建议你回答塞巴斯蒂安的问题。这是一个完美的方法。如果您真的要将其他数据放在其中,并且不想捕获Hello和World

下面是另一个解决方案:

^([A-Z\“\,]+)[\“\,\s]+([A-Z\“\,]+)$

唯一的问题是,这将返回HELLO和WORLD,其中包含“and”

然后由您在输出字符串中执行替换“and”和“nothing”

例如:

//RegEx: ^([A-Z\"\,]+)[\"\,\s]+([A-Z\"\,]+)$
    string pattern = "^([A-Z\"\\,]+)[\"\\,\\s]+([A-Z\"\\,]+)$";
    System.Text.RegularExpressions.Regex Reg = new System.Text.RegularExpressions.Regex(pattern);

    string MyInput;

    MyInput = "\"HELLO\",\"WORLD\"";
    MyInput = "\"HELL\"O\"\",WORLD\"";
    MyInput = "\"HELL,O\",\"WORLD\"";

    string First;
    string Second;

    if (Reg.IsMatch(MyInput))
    {
        string[] result;
        result = Reg.Split(MyInput);

        First = result[1].Replace("\"","").Replace(",","");
        Second = result[2].Replace("\"","").Replace(",","");
    }
第一个和第二个是Hello和World


希望这有帮助。如果您需要进一步的帮助,请告诉我。

如果您只需要Hello and World上的帮助,我建议您使用Sebastian的答案。这是一个完美的解决方法。如果您真的将其他数据放入其中,并且不想捕获Hello and World

下面是另一个解决方案:

^([A-Z\“\,]+)[\“\,\s]+([A-Z\“\,]+)$

唯一的问题是,这将返回HELLO和WORLD,其中包含“and”

然后由您在输出字符串中执行替换“and”和“nothing”

例如:

//RegEx: ^([A-Z\"\,]+)[\"\,\s]+([A-Z\"\,]+)$
    string pattern = "^([A-Z\"\\,]+)[\"\\,\\s]+([A-Z\"\\,]+)$";
    System.Text.RegularExpressions.Regex Reg = new System.Text.RegularExpressions.Regex(pattern);

    string MyInput;

    MyInput = "\"HELLO\",\"WORLD\"";
    MyInput = "\"HELL\"O\"\",WORLD\"";
    MyInput = "\"HELL,O\",\"WORLD\"";

    string First;
    string Second;

    if (Reg.IsMatch(MyInput))
    {
        string[] result;
        result = Reg.Split(MyInput);

        First = result[1].Replace("\"","").Replace(",","");
        Second = result[2].Replace("\"","").Replace(",","");
    }
第一个和第二个是Hello和World


希望这有帮助。如果您需要进一步的帮助,请告诉我。

这是问题的答案。这是许多程序员都有的一个问题,他们回答用户,但用户不知道如何称呼程序员。我的大脑说“42”,这是问题的答案。这是许多程序员都有的一个问题,他们回答用户,但用户不知道如何称呼程序员。我的大脑说“42”。