求正则表达式匹配非链接(非<>)
字符串中包含html,要求能匹配所有非链接(非<>)的部分.如:“<p>工业<a href="#">自动化</a>专业课程安排如图2<img src="#" alt="工业自动化"/>,如有变动,另行通知!<span><a href="#">机电学院</a></span>考试课成绩>80分的学生可选修第二专业。</p>”
期待匹配的结果是:
<p>工业
专业课程安排如图2
,如有变动,另行通知!<span>
</span>考试课成绩>80分的学生可选修第二专业。
其中大于号(>)可能会干扰正则表达式对围堵标记(<>)的识别。 --------------------编程问答-------------------- try:
(?is)<(a|img)[^]*?>(.*?</\1>)?
string source="你的html源码";
source=source.Replace(source,@"(?is)<(a|img)[^]*?>(.*?</\1>)?",""); --------------------编程问答-------------------- 谢谢Chinajiyong ,正则有点问题,
提示:正在分析“(?is)<(a|img)[^]*?>(.*?</\1>)?”- 未终止的 [] 集 --------------------编程问答--------------------
string str = File.ReadAllText("D:\\1.txt", Encoding.Default);--------------------编程问答-------------------- 谢谢hjywyj,匹配a标签和img标签很管用,如何转换成匹配非a标签和img标签呢? --------------------编程问答--------------------
str = Regex.Replace(str, @"(?is)<a[^>]*>.*?</a>|<img[^>]+>", "\r\n");
string source="你的html源码";
source=source.Replace(source,@"(?is)<(a|img)[^>]*?>(.*?</\1>)?",""); --------------------编程问答--------------------
匹配a标签和img标签很管用,如何转换成匹配非a标签和img标签的正则呢? --------------------编程问答-------------------- 有个参考的正则可以基本满足条件:(?in)[^<>]+(?=(<(?!/a)[^<>]*>[^<>]*)*(<a\b|$))
就是有个缺陷,遇到字符串中有大于号(>)或者小于号(<)就会出错。
补充:.NET技术 , ASP.NET