簡體   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