求一个匹配非超链内容的正则 要求匹配:不以<a 为开始 以</a>为结尾的任意长度html的内容 即 xxx <a ....</a> xxxxx 要得到那些xxxx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你只要去匹配<a 开头 </a>结束的标记之中的所有内容替换成空就行了。为什么非要描述成非什么什么的呢? 匹配<a>*</a>标记的正则: <a.*?[^>]> Asp.net(C#)高手交流群(39364250),欢迎高手加盟! ((?<=^|<a.*?</a>).*?(?=$|<a.*?</a>)) 因为可能会有换行,所以还要在前面加上(?s)即:(?s)((?<=^|<a.*?</a>).*?(?=$|<a.*?</a>)) 提取的话可以用下面的正则(?<=</a>|^)[\s\S]*?(?=<a|$)不过不明白这算什么需求,为什么不直接替换掉?string result = Regex.Replace(str, @"<a[^>]*>[\s\S]*?</a>", "", RegexOptions.IgnoreCase); 同意楼上的观点,不过有个小改进,我认为改成这样更好:string result = Regex.Replace(str, @"(?si)<a\b(?:""[^""]*""|'[^']*'|[^""'>])*>.*?</a>", "");因为可能出现 <a abc='if (x > 6){}'>OK</a> 这种情况,所以 <a[^>]*> 是不完善的。另外,(?s) 是 RegexOptions.Singleline 的含义,表示 . 可以匹配换行符,就不必用 [\s\S] 表示匹配包括换行符在内的任何字符了。(?i) 表示 RegexOptions.IgnoreCase。 读取文本转换问题。 正则表达式 WebService 接收参数中检测到有潜在危险的 Request.Form 值。 急急急急加急急急 asp.net怎么打开服务器上某个指定的文件 Authentication心得 100分,求Page_Init(……)不用手打,类似于双击按钮产生的方法。初学,说的有些乱。 windows server 2003 应用程序无法打开 HTTP 錯誤 405 请问如何实现一个定时下载以及上传的程序? 没分了,求救:用VS编辑代码时输入一个字母它会替换掉前面的字母 着急::上传文件特殊问题 请教关于“服务器应用程序不可用”的问题
即:
(?s)((?<=^|<a.*?</a>).*?(?=$|<a.*?</a>))
(?<=</a>|^)[\s\S]*?(?=<a|$)不过不明白这算什么需求,为什么不直接替换掉?
string result = Regex.Replace(str, @"<a[^>]*>[\s\S]*?</a>", "", RegexOptions.IgnoreCase);
同意楼上的观点,不过有个小改进,我认为改成这样更好:string result = Regex.Replace(str, @"(?si)<a\b(?:""[^""]*""|'[^']*'|[^""'>])*>.*?</a>", "");因为可能出现 <a abc='if (x > 6){}'>OK</a> 这种情况,所以 <a[^>]*> 是不完善的。另外,(?s) 是 RegexOptions.Singleline 的含义,表示 . 可以匹配换行符,就不必用 [\s\S] 表示匹配包括换行符在内的任何字符了。(?i) 表示 RegexOptions.IgnoreCase。