[英]Why does this Regex not match properly?
我基本上有這個:
Regex rx = new Regex(@"\$(?:(\$)|(\{(?<ex>.*?)\}))");
string s = "${P#(n*8+1)!=0$$P}${P#(n*8+1)!=0$N/A$[n*8+1]}";
Match m = rx.Match(s, 0);
當它應為"${P#(n*8+1)!=0$$P}"
"${P#(n*8+1)!=0$N/A$[n*8+1]}"
時,第一個匹配為"${P#(n*8+1)!=0$N/A$[n*8+1]}"
"${P#(n*8+1)!=0$$P}"
。 如果我在第一個'$'
之前放置多余的空格,則可以正常工作。
您正在交換參數。 Regex.IsMatch
簽名為:
public static bool IsMatch(string input, string pattern)
編輯:以下代碼為我兩次打印True
。
var p = @"\$(?:(\$)|(\{(?<ex>.*?)\}))";
var regex = new Regex(p);
Console.WriteLine(regex.IsMatch(" ${foo}"));
Console.WriteLine(regex.IsMatch("${foo}"));
EDIT2:刪除了之前的修改,該匹配對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.