Regex.IsMatch在不应该返回时返回true

时间:2014-03-17 00:28:27

标签: c# regex

正则表达式

patternMatch = "^(?i)/(A|B)?(?:/index.html|/|)"

输入字符串 -

inputString = "/_Test/C.asmx"

(Regex.IsMatch(inputString, patternMatch, RegexOptions.IgnoreCase))返回true,它应返回false。

现在,我得到双倍'?'在正则表达式模式中不是必需的。但是,我只是想找出模式匹配失败的原因。

http://www.regexr.com/告诉我它应该返回false。

1 个答案:

答案 0 :(得分:0)

你可能意味着这个正则表达式:

patternMatch = @"^(?i)/(A|B)?(?:/index\.html|/|)$"

@是生成正则表达式字符串。

\.是为了逃避点,以便匹配文字点(而不是任何字符)。

$匹配字符串的结尾,并确保正则表达式尝试匹配整个字符串。