[英]Regex Pattern Using Brackets
伙計們,這是一個簡單的問題。 我正在嘗試創建一種與C#中的Regex一起使用的模式。
這是我的嘗試:
"(value\":\[\[\"([A-Za-z0-9]+(?:-{0,1})[A-Za-z0-9]+)\"\]\])"
但是由於某種原因,當我去編譯它時,在括號中得到了“無法識別的轉義序列”。 我可以不簡單地使用\\來逃避括號嗎?
我要搜索的字符串的形式為
value":[["AB-AB"]]
要么
value":[["ABAB"]]
我想從結果中抓取group [1]。
默認情況下,C#編譯器不允許它無法識別的轉義序列。 您可以這樣使用“ @”來覆蓋此行為:
@"(value\"":\[\[\""([A-Za-z0-9]+(?:-{0,1})[A-Za-z0-9]+)\""\]\])"
編輯:
@符號要復雜得多。 引用@Guffa:
@分隔的字符串根本不對轉義序列使用反斜杠。
此外,應該注意的是,在這樣的字符串中用\\"
替換為""
我建議您在實現否定的字符類以匹配上下文的同時,將您的模式放在逐字字符串內。 然后參考第一組以獲取比賽結果。
String s = @"I have value"":[[""AB-AB""]] and value"":[[""ABAB""]]";
foreach (Match m in Regex.Matches(s, @"value"":\[\[""([^""]+)""]]"))
Console.WriteLine(m.Groups[1].Value);
輸出量
AB-AB
ABAB
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.