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