如何在没有区分大小写的情况下匹配数组中的单词?

时间:2015-12-20 09:53:26

标签: c# arrays regex

我有一个我将从文本框中匹配的数组

home

现在,当使用正则表达式键入时,我将从文本框中删除这些单词。

string[] streetAbbr = { "Street", "street", "ST","ST.", "St","St.", "sT", "sT.", "st", "st."  };

事情是从string cleanedStreet = Regex.Replace(txtAddressStreet.Text, "\\b" + string.Join("\\b|\\b", streetAbbr) + "\\b", ""); 进行匹配时,它需要处于确切的情况。所以,我已经在数组中放入了每种情况模式。是否至少有一个字符串方法,它会忽略这种情况?

4 个答案:

答案 0 :(得分:3)

使用Regex.Replace的重载选项:

string cleanedStreet = Regex.Replace(txtAddressStreet.Text, "\\b" + string.Join("\\b|\\b", streetAbbr) + "\\b", "", RegexOptions.IgnoreCase);

来自MSDN:

  

指定不区分大小写的匹配。有关更多信息,请参阅正则表达式选项主题中的“不区分大小写匹配”部分。

答案 1 :(得分:2)

这就是IgnoreCase option的用途!

答案 2 :(得分:1)

将数组中的单词设为小写,然后比较make文本框的值.Tolower()

通过这种方式,您将比较所有小写

答案 3 :(得分:1)

在C#中:

var stringA = "This Is String WitH Some Cases";
    var stringB = "This is string with some cases";

    // string.Compare method has a third argument named IgnoreCase
    string.Compare(stringA,stringB,true) 

在正则表达式中,您可以广告"我"标记为模式结束以忽略匹配的大小写。

或者只是你可以小写并比较。

string cleanedStreet = Regex.Replace(txtAddressStreet.Text.ToLower(), "\\b" + string.Join("\\b|\\b", streetAbbr) + "\\b", "");