不包含指定多个字符串!不知道怎么形容!给个例子吧
str = pabcp,pfffp,ps1-s2,1p
我要取的是以p开始和以p结尾这一段,包含有abc和fff的不需要,得到的结果是ps1-s2,1p其中s1-s2,1是任意的。
str = pabcp,pfffp,ps1-s2,1p
我要取的是以p开始和以p结尾这一段,包含有abc和fff的不需要,得到的结果是ps1-s2,1p其中s1-s2,1是任意的。
string str = "pabcp,pfffp,ps1-s2,1p,pabcp";
string result = Regex.Replace(str + ",", @"(?i),*p[^p,]*?p,", "");
Console.WriteLine(result);
string str = "pabcp,pfffp,ps1-s2,1p,pabcp";
string result = Regex.Replace(str, @"(?i),*p[^p,]*?p,*", "");
Console.WriteLine(result);
Regex reg = new Regex(@"(?i)p(?!,p)((?:(?!abc|fff)[^p])*)p");
MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[1].Value + "\n";
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace sxLdfang
{
class Program
{
static void Main(string[] args)
{
string html = @"str = pacp4 , pfffp , ps1-p2 ,1p,abcp,s1-p2 ";
string pattern = @"(?<=[,=]\s*)(p(?![-\w]*(abc|fff))[-\w]+(?=\s*(,|$))|(?![-\w]*(abc|fff))[-\w]+p(?=\s*(,|$)))";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
Console.ReadKey();
}
}
}
运行结果:
pacp4
ps1-p2
1p
测试这样的不行啊:
str = pacp4 , pfffp , ps1-p2 ,1p,abcp,s1-p2