一直试图找出正则表达式中的“[”和“]”的转义字符。我有串以下模式,该字符串是实际的字符串:正则表达式在C#问题
[somestring] [anotherstring]
因此字符串将启动“[”之后somestring随后用“]”,后通过“[”,后面跟着其他字符串,然后是“]”。
任何人都可以请建议?
一直试图找出正则表达式中的“[”和“]”的转义字符。我有串以下模式,该字符串是实际的字符串:正则表达式在C#问题
[somestring] [anotherstring]
因此字符串将启动“[”之后somestring随后用“]”,后通过“[”,后面跟着其他字符串,然后是“]”。
任何人都可以请建议?
如果是只有1级,你想解析出字符串,那么你不需要正则表达式:
string composition = "[somestring][anotherstring]";
string[] stringSeparators = new string[] {"][", "[", "]"};
string[] s = composition.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
如果你想匹配的确切模式:
Regex r = new Regex(@"^(\[[^\[\]]+\]){2}$");
编辑 - 它有语法突出显示的代码的评论者回答: 对于解析出使用组串正则表达式的方式,你可以使用:
foreach (Match match in Regex.Matches(composition, @"\[([^\[\]]+)\]"))
Console.WriteLine(match.Groups[1].Value);
我如何提取“[]”中的字符串?所以它会拉出一些字符串和其他字符串。 – user384080 2010-07-22 05:32:46
@ ronald-yoh:使用分组操作符。 – leppie 2010-07-22 05:50:43
我是相当新的正则表达式..你可以请给我一个例子吗? – user384080 2010-07-22 06:43:32
请注意,您需要使用'“\\”'或'@“\”'来避免字符串中的反斜杠(在正则表达式“看到”它之前)。 – Kobi 2010-07-22 05:15:19
@"(\[[^\]]+\]){2}"
我想(我的头现在有点疼)。
注意,这将匹配[
和]
之间的任何内容。
注意:如果字符串是[[s [omest [ring] [anothertring]],它也会匹配成功,你可能不想要。 – 2010-07-22 05:27:52
@Jaroslav Jandek:非常好的点:) – leppie 2010-07-22 05:49:51
我在编写正则表达式时发现了非常有用的免费Rad Software Regular Expression Designer。它包括一个内置的参考和检查您的正则表达式的能力: http://www.radsoftware.com.au/regexdesigner/ – Alex 2010-07-22 05:29:12
顺便说一句,这将是有益的,如果你澄清是否你想要一个正则表达式来验证/匹配字符串或提取/捕获字符串中的两个元素。 – Alex 2010-07-22 05:38:01