Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#正则表达式匹配行中的精确字符串,但忽略大小写_C#_Regex - Fatal编程技术网

C#正则表达式匹配行中的精确字符串,但忽略大小写

C#正则表达式匹配行中的精确字符串,但忽略大小写,c#,regex,C#,Regex,我目前拥有的regex代码将寻找与case完全匹配的代码,那么为了忽略case,我必须做什么更改 public static bool ExactMatch(string input, string match) { return Regex.IsMatch(input, string.Format(@"\b{0}\b", Regex.Escape(match))); } 服务器端可以使用“(?i)”,但这在客户端不起作用。 我想它应该对你有用,它会忽略这个案例 i、 e.“…(.i)

我目前拥有的regex代码将寻找与case完全匹配的代码,那么为了忽略case,我必须做什么更改

public static bool ExactMatch(string input, string match)
{
    return Regex.IsMatch(input, string.Format(@"\b{0}\b", Regex.Escape(match)));
}
服务器端可以使用“
(?i)
”,但这在客户端不起作用。 我想它应该对你有用,它会忽略这个案例

i、 e.“
…(.i)(jpg | jpeg | gif | png | wpf |……

希望有帮助。

参数
(?i)
使regex不区分大小写:

@"(?i)\b{0}\b"
请注意,
\b
仅当搜索词以字母数字字符开头和结尾时,单词边界才起作用。

这应该起作用:

public static bool ExactMatch(string input, string match)
{
    return Regex.IsMatch(input, string.Format(@"\b{0}\b", Regex.Escape(match)), RegexOptions.IgnoreCase);
}
只需使用允许您指定选项的:

return Regex.IsMatch(input, string.Format(@"\b{0}\b", Regex.Escape(match)), RegexOptions.IgnoreCase);
应该是一种选择

Regex.IsMatch(input, string.Format(@"\b{0}\b", Regex.Escape(match)), RegexOptions.IgnoreCase)

“(?i)”也适用于客户端。(这两个地方的.NET框架都是一样的。)JavaScript不理解用于分组的.NET正则表达式语法。当您在RegularExpressionValidator上将EnableClientScript设置为true时,ASP.NET将在JavaScript中重新创建正则表达式,以便在控件上启用客户端验证。在这种情况下,JavaScript不支持命名组的语法(?…)和非捕获组(?:…)。我的答案是100%正确的,我不明白为什么有些人会这样,评分时不知道他们在说什么。虽然你对JavaScript是正确的,但这个问题中的“客户端”是C#,而不是JavaScript。(注意标签。)这就是为什么我要解释的,如果你试图创建一个启动脚本,并在客户端用javascript运行它,那是行不通的。重点是什么?他问的不是网页或javascript。他问的是C。你在回答一个问题时引入了一个完全无关的概念。虽然这可能是准确的,但它与问题无关。阿尔普实际上是数字和下划线字符。单词边界与文本中
\w\w
\w\w
为真的位置相匹配。请参阅@Cyborgx37:关于下划线,您的解释当然是正确的,但是,您的解释并不完全正确。单词边界在字符串的开头/结尾也匹配(如果字符串以“字母数字”字符开头/结尾)。您是正确的。我不打算提供完整的定义(在链接文档中给出)。这(?I)参数对我来说很关键,因为我需要MVC RouteAttribute路由变量约束中的正则表达式,在这里我无法设置正则表达式选项。这对我来说是最好的答案,因为它将功能保留在正则表达式字符串本身中。