[英]REGEX matches in tester but not C#
我從文件中的行: ; STRING WBSALT1()
; STRING WBSALT1()
和代碼
if (!Regex.IsMatch(line, @"\s*(;)(.*)", RegexOptions.IgnoreCase))
{
//do
//stuff
}
由於某種原因,REGEX與文件中的該行不匹配。 我通過測試器運行它,發現它很好。 有誰知道還有什么可能導致該問題?
但是它將與之匹配(在代碼中,而不在正則表達式測試器中)
if (Regex.IsMatch(line, @"\s*(string)\s*(.*\()\s*(\d*)\)\s*;?(.*)", RegexOptions.IgnoreCase))
這對我來說真的沒有任何意義。 文件中的其他幾千行看起來沒有類似的其他問題。 有任何想法嗎?
編輯 :好的,所以我沒有將它放在問題中,因為我認為沒有必要。 顯然是:
我的ACTUAL if
語句如下:
if (!Regex.IsMatch(line, @"\s*;.*") || !Regex.IsMatch(line, @"\s*(origin)\s*(.*)", RegexOptions.IgnoreCase))
現在,當我起飛||
聲明它正常工作。 我為什么不知道這樣做的原因。 也許有人對此有所了解?
在我的環境中經過測試,可以正常工作。
string line = "; STRING WBSALT1()";
if (!Regex.IsMatch(line, @"\s*(;)(.*)", RegexOptions.IgnoreCase))
{
//do
//stuff
}
想知道您是否不打算使用“!” 成為條件的一部分
if(! ...
問候,
僅添加即可,如果您使用.*
,則無需在此處設置IgnoreCase
並且可能會丟失捕獲組。 您可能還想添加開始^
和結束$
行錨。
Ideone
測試
string line = "; STRING WBSALT1()";
if (!Regex.IsMatch(line, @"^\s*;.*$")) {
// do something
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.