【问题标题】:Find text lower case or upper case查找文本小写或大写
【发布时间】:2013-06-26 02:46:39
【问题描述】:

我需要查找小写或大写文本(使用正则表达式) 我的代码:

static void Main(string[] args)
{
    String s = "String : hello Hello HELLO hEllo ";
    String patern = @"(hello)";
    Regex myRegex = new Regex(patern);
    foreach (Match regex in myRegex.Matches(s)) {
        Console.WriteLine(regex.Value.ToString());
    }
}

结果:

hello

我需要结果

hello 
Hello 
HELLO 
hEllo

你能帮帮我吗?

【问题讨论】:

标签: c# regex


【解决方案1】:

两种方式:

 String patern = @"(?i)(hello)";

(?i) 开启不区分大小写比较,(?-i) 恢复默认的区分大小写比较。

或者在创建正则表达式对象时使用RegexOptions.IgnoreCase 选项:

Regex myRegex = new Regex(patern, RegexOptions.IgnoreCase);

【讨论】:

    【解决方案2】:

    试试这个

    String patern = @"[Hh][Ee][Ll][Ll][Oo]";
    

    【讨论】:

    • 为什么这比不区分大小写的标志更好?
    • 它在这个特定场景下产生相同的结果,但它不像其他选项那样可扩展,特别是如果搜索词是动态加载而不是静态硬编码,这种方法会变得更加麻烦比它的价值。
    • 它也更难阅读,不必要的复杂,并且意图不那么明显。
    • 是的,我同意 .. 如果您动态加载表达式,使用不区分大小写修饰符是更好的选择 ..
    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      相关资源
      最近更新 更多