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