代码之家  ›  专栏  ›  技术社区  ›  yevg

正则表达式匹配字符串中的最后一个字符[重复]

  •  4
  • yevg  · 技术社区  · 7 年前

    cat I cat II cat III dog I dog III bird I

    我想用一个 I ,但不是 II III .

    cat I
    dog I
    bird I
    

    我曾想过匹配一个

    这种模式的正则表达式是什么?

    4 回复  |  直到 7 年前
        1
  •  9
  •   Peter Mortensen John Conde    5 年前

    ^(.*[^I])\I$
    

    ^ -字符串的开头
    (.*[^I]) -匹配除then之外的任何字符 'I' [^I] 意思是“不要接住 “我”
    \I -匹配文字 “我”
    $ -字符串结束

        2
  •  7
  •   Peter Mortensen John Conde    5 年前

    word boundaries ,因此正则表达式可以如下所示:

    ^.*\bI\b.*$
    

    Regex demo

        3
  •  5
  •   Peter Mortensen John Conde    5 年前

    试试这个:

    ^[a-z|A-Z|0-9]+[^I]\s?I{1}$
    

    我认为这是一个更准确的解决方案。

    Try demo

        4
  •  2
  •   Casperah    7 年前

    ^.*\bI\b$
    

    Regex regex = new Regex(@"^.*\bI\b$");
    var input = new string[]{"cat I","cat II","cat III","dog I","dog III","bird I"};
    foreach(string text in input)
    {
        if (regex.IsMatch(text))
            Console.WriteLine(text);
    }