查找字符串C#中是否单独存在

hav*_*kok 2 c# regex string contain

我想找到(在VS C#中)一个字符串是否包含一个没有立即重复的字符(例如'%').

例如"我有%单独,这很好=> %%".我想找到任何包含单个'%'(甚至几次)的字符串,而不管相邻的"%%"出现次数.

下面将显然是不行的,并给truefoo2:

string foo1="% I want to find this string";
string foo2="I don't want to find this string because the char %% is not alone";
string foo3="I%want%to%find%this%as%well!"
if(line.Contains("%")){}
Run Code Online (Sandbox Code Playgroud)

我试图了解如何在这里应用正则表达式.

Wik*_*żew 7

在此处发表评论:

您也可以使用非正则表达式:

if (s.Contains("%") && !s.Contains("%%"))
Run Code Online (Sandbox Code Playgroud)

如果你需要使用正则表达式,你可以使用负lookaroundsRegex.IsMatch:

if(Regex.IsMatch(line, @"(?<!%)%(?!%)")) {}
Run Code Online (Sandbox Code Playgroud)

看到这个正则表达式演示.

(?<!%)如果负回顾后会失败的比赛%之前包含一个%(?!%)如果负先行将失败的比赛%之后用%.

  • 好吧,我想它也可以像`if(s.Contains("%")&&!s.Contains("%%"))`那样完成.选择你喜欢的:) (2认同)