繁体   English   中英

正则表达式用于带空格和特殊字符的字符串-C#

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM