我有一个在正则表达式中解析的字符串:
"one [two] three [four] five"
Run Code Online (Sandbox Code Playgroud)
我有正则表达式,可以将括号内的文本提取到 中<bracket>,但现在我想将其他内容(一、三、五)添加到 中<text>,但我希望有单独的匹配项。
所以它要么是 的匹配<text>,要么是 的匹配<bracket>。使用正则表达式可以吗?
所以匹配列表看起来像:
text=one, bracketed=null
text=null, bracketed=[two]
text=three, bracketed=null
text=one, bracketed=[four]
text=five, bracketed=null
Run Code Online (Sandbox Code Playgroud)
这就是你所追求的吗?基本上 | 用于正则表达式中的交替。
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)