C#Regex,或者或者

时间:2010-10-19 06:02:28

标签: c# regex

我在正则表达式中解析了一个字符串:

"one [two] three [four] five"

我有正则表达式,将括号中的文本提取到<bracket>,但现在我想将其他内容(一,三,五)添加到<text>,但我希望有单独的匹配。

因此,它与<text>匹配或与<bracket>匹配。这可能使用正则表达式吗?

所以匹配列表如下:

text=one, bracketed=null 
text=null, bracketed=[two] 
text=three, bracketed=null 
text=one, bracketed=[four]
text=five, bracketed=null 

1 个答案:

答案 0 :(得分:4)

这就是你要追求的吗?基本上|用于正则表达式的交替。

using System;
using System.Text.RegularExpressions;

public class Test 
{
    public static void Main()
    {
        string test = "one [two] three [four] five";
        Regex regex = new Regex(@"(?<text>[a-z]+)|(?<bracketed>\[[a-z]+\])");

        Match match = regex.Match(test);
        while (match.Success)
        {
            Console.WriteLine("text: {0}; bracketed: {1}",
                              match.Groups["text"],
                              match.Groups["bracketed"]);
            match = match.NextMatch();
        }
    }
}