hav*_*kok 2 c# regex string contain
我想找到(在VS C#中)一个字符串是否包含一个没有立即重复的字符(例如'%').
例如"我有%单独,这很好=> %%".我想找到任何包含单个'%'(甚至几次)的字符串,而不管相邻的"%%"出现次数.
下面将显然是不行的,并给true为foo2:
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)
我试图了解如何在这里应用正则表达式.
在此处发表评论:
您也可以使用非正则表达式:
if (s.Contains("%") && !s.Contains("%%"))
Run Code Online (Sandbox Code Playgroud)
如果你需要使用正则表达式,你可以使用负lookarounds有Regex.IsMatch:
if(Regex.IsMatch(line, @"(?<!%)%(?!%)")) {}
Run Code Online (Sandbox Code Playgroud)
看到这个正则表达式演示.
该(?<!%)如果负回顾后会失败的比赛%之前包含一个%和(?!%)如果负先行将失败的比赛%之后用%.