簡體   English   中英

為什么此正則表達式不正確匹配?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM