[英]Regex for string with spaces and special characters - C#
我一直在使用正则表达式来匹配嵌入在方括号[*]中的字符串,如下所示:
new Regex(@"\[(?<name>\S+)\]", RegexOptions.IgnoreCase);
我还需要匹配一些看起来像这样的代码:[TESTTABLE:A,B,C,D]
它有空格,逗号,冒号
您能否指导我如何修改上面的正则表达式以包括此类代码。
PS其他代码没有空格/特殊字符,但始终包含在[...]中。
Regex myregex = new Regex(@"\[([^\]]*)]")
将匹配所有非右括号且括在方括号之间的字符。 捕获组\\1
将匹配括号中的内容。
说明(由RegexBuddy提供 ):
Match the character “[” literally «\[»
Match the regular expression below and capture its match into backreference number 1 «([^\]]*)»
Match any character that is NOT a ] character «[^\]]*»
Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the character “]” literally «]»
如果您要查找的字符串中有一对以上的匹配括号,这也将起作用。 如果方括号可以嵌套,例如[Blah [Blah] Blah]
,则将无法使用。
/\[([^\]:])*(?::([^\]]*))?\]/
如果捕获组1没有冒号,则它将包含整个标签;如果没有冒号,则捕获组1将包含冒号之前的部分。
捕获组2将包含冒号之后的部分。 然后,您可以分割','并修剪每个条目以获取各个部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.