最后一个C#正则问题了,搞了半天搞不对啊。

liyifei123 2013-02-05 05:05:06
string str1 = "1";
string str2 = "2";
string str3 = "3";
string str4 = "4";
string str = "1X23Y4";
string pattern = string.Format(@"(?<={0})(((?!{1}).)*)(?={1}{2}(((?!{3}).)*){3})", str1, str2, str3, str4);
str = Regex.Replace(str, pattern, "$3");


如果2-3之间有未知的字符串,这个正则该怎么改改???
...全文
191 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 liyifei123 的回复:
引用 1 楼 hjywyj 的回复:string pattern = string.Format(@"(?is)(?<={0})(((?!{1}).)*)(?={1}.*?{2}(((?!{3}).)*){3})", str1, str2, str3, str4); 弱弱的问一句这样出来以后"$3"和"$4"是不是一样的啊?
不一样,$3是3-4之间所有字符 $4是$3的最后一个字符,也就是4前面的那一个字符
liyifei123 2013-02-05
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
string pattern = string.Format(@"(?is)(?<={0})(((?!{1}).)*)(?={1}.*?{2}(((?!{3}).)*){3})", str1, str2, str3, str4);
弱弱的问一句这样出来以后"$3"和"$4"是不是一样的啊?
  • 打赏
  • 举报
回复
string pattern = string.Format(@"(?is)(?<={0})(((?!{1}).)*)(?={1}.*?{2}(((?!{3}).)*){3})", str1, str2, str3, str4);

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧