求一正则,100分奉上------------

NqIceCoffee 2013-02-24 01:17:46
"[a]=@b '[a]=@b'"


如上的一个字符串,只匹配出红色的部分
即:忽略在单引号内部的符合规则的部分

请高手帮忙,谢谢
...全文
201 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalmeeme 2013-02-24
  • 打赏
  • 举报
回复
		string s = "[a]=@b [c]=@d 'dafd [c]=@d dafdaf'";
		string r = Regex.Match(s, @"(?<!^')(\[\w+\]=@\w+(?!') *)+").Value;
		Response.Write(r);
  • 打赏
  • 举报
回复
我擦~ string pattern = @"(?is)'[^']*'?|(?<t>\[[a-z0-9]+\]=@[a-z0-9]+)"; var list = Regex.Matches(str, pattern).OfType<Match>().Select(T => T.Groups["t"].Value).Where(t => t != "").ToList();
NqIceCoffee 2013-02-24
  • 打赏
  • 举报
回复
"[a]=@b [c]=@d 'dafd [c]=@d dafdaf'" 楼上2位的方法,不适应这种(也可能是我在表达的时候不清楚)
NqIceCoffee 2013-02-24
  • 打赏
  • 举报
回复
呵呵,我试试楼上2位的方法 我不打大平衡组,以为是用那个
dalmeeme 2013-02-24
  • 打赏
  • 举报
回复
		string s = "[a]=@b '[c]=@d'";
		string r = Regex.Match(s, @"(?<!^')\[\w+\]=@\w+(?!')").Value;
		Response.Write(r);
  • 打赏
  • 举报
回复
string pattern= @"(?is)(?<=[^']|^)\[[a-z0-9]+\]=@[a-z0-9]+(?=[^']|$)" 这个用不到平衡组吧
NqIceCoffee 2013-02-24
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
将单引号内的内容replace为""
这个不行,不能改变原来的串 貌似印象中,这种情形,可以使用正则重的平衡组,但这个我不会。。。 哎
  • 打赏
  • 举报
回复
将单引号内的内容replace为""

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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