我在正则表达式中解析了一个字符串:
"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
答案 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();
}
}
}