举例:
string a = "fds<font style=\"color:#FFFF37\">st</font>asbc";//源字符串
string b = "<.*?>";//不能被替换的正则表达式
string c = "s";//符合条件的字符串正则表达式
string d = "ABC";//要替换成的字符串正则表达式
要求:要将红色的“s”替换成“ABC”,黄色的不能替换
"fd s<font style=\"color:#FFFF37\"> st</font>a sbc"
最终的结果是:"fdABC<font style=\"color:#FFFF37\">ABCt</font>aABCbc"
注意:不要把程序写死了,因为尖括号内的内容是不确定的,这里用<font>只是举个例子
5 个解决方案
#1
你不应该用正则表达式,你应该找这行HTML代码哪些字符使用了 红色 颜色的CSS
#2
楼上的大哥没有明白我的意思,我用颜色标注只是为我大家更容易理解我要替换的地方,并不是要修改颜色。
这里在补充说一下:只替换a变量中在尖括号之外的“s”,在尖括号中的“style”里的“s”不能把它替换掉。
string a = "fds<font style=\"color:#FFFF37\">st</font>asbc";//源字符串
这里在补充说一下:只替换a变量中在尖括号之外的“s”,在尖括号中的“style”里的“s”不能把它替换掉。
string a = "fds<font style=\"color:#FFFF37\">st</font>asbc";//源字符串
#3
我写了一个,效率不考虑:
string s = "fds<font style=\"color:#FFFF37\">st</font>asbc";
string[] results = Regex.Split(s, @"(?is)(<!?/?[^>]*/?>)");
results = results.Select(x => x.StartsWith("<") && x.EndsWith(">") ? x : x = x.Replace("s", "ABC")).ToArray();
string r = string.Concat(results);
Response.Write(Server.HtmlEncode(r));
#4
要是这个字符串咋替换?
"fdsads<font style=\"color:#FFFF37\">asst</font>asbsc"
"fdsads<font style=\"color:#FFFF37\">asst</font>asbsc"
#5
string a = "fds<font style=\"color:#FFFF37\">st</font>abc";
string b = "s";//要获取的值
Regex reg=new Regex("(?<!<[^>]*)"+b);
a=reg.Replace(a,"ABC");
string b = "s";//要获取的值
Regex reg=new Regex("(?<!<[^>]*)"+b);
a=reg.Replace(a,"ABC");
#1
你不应该用正则表达式,你应该找这行HTML代码哪些字符使用了 红色 颜色的CSS
#2
楼上的大哥没有明白我的意思,我用颜色标注只是为我大家更容易理解我要替换的地方,并不是要修改颜色。
这里在补充说一下:只替换a变量中在尖括号之外的“s”,在尖括号中的“style”里的“s”不能把它替换掉。
string a = "fds<font style=\"color:#FFFF37\">st</font>asbc";//源字符串
这里在补充说一下:只替换a变量中在尖括号之外的“s”,在尖括号中的“style”里的“s”不能把它替换掉。
string a = "fds<font style=\"color:#FFFF37\">st</font>asbc";//源字符串
#3
我写了一个,效率不考虑:
string s = "fds<font style=\"color:#FFFF37\">st</font>asbc";
string[] results = Regex.Split(s, @"(?is)(<!?/?[^>]*/?>)");
results = results.Select(x => x.StartsWith("<") && x.EndsWith(">") ? x : x = x.Replace("s", "ABC")).ToArray();
string r = string.Concat(results);
Response.Write(Server.HtmlEncode(r));
#4
要是这个字符串咋替换?
"fdsads<font style=\"color:#FFFF37\">asst</font>asbsc"
"fdsads<font style=\"color:#FFFF37\">asst</font>asbsc"
#5
string a = "fds<font style=\"color:#FFFF37\">st</font>abc";
string b = "s";//要获取的值
Regex reg=new Regex("(?<!<[^>]*)"+b);
a=reg.Replace(a,"ABC");
string b = "s";//要获取的值
Regex reg=new Regex("(?<!<[^>]*)"+b);
a=reg.Replace(a,"ABC");