我有一个我将从文本框中匹配的数组
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", "");
进行匹配时,它需要处于确切的情况。所以,我已经在数组中放入了每种情况模式。是否至少有一个字符串方法,它会忽略这种情况?
答案 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", "");