假设我有以下字符串:
cat I
cat II
cat III
dog I
dog III
bird I
我想将所有字符串与I
匹配,但不是II
或III
。
所以正确的匹配会给我:
cat I
dog I
bird I
我想到了匹配I
之后没有其他角色,但也许有更直接的方式。
这种模式的正则表达式是什么?
答案 0 :(得分:4)
答案 1 :(得分:4)
试试这句话:
^(.*[^I])\I$
^
- 字符串开头
(.*[^I])
- 匹配'I'
以外的任何字符([^I]
表示"不要抓住'I'
")
\I
- 匹配文字'I'
$
- 字符串结尾
答案 2 :(得分:3)
答案 3 :(得分:2)
这是一个可能的解决方案:
^.*\bI\b$
这可以在C#中使用:
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);
}