使用正则表达式修剪html
一直试图解决这个问题。
我需要一个正则表达式去除下面示例中演示的html标记之间的换行符,制表符和空格:
资源:
Some title
通缉结果:
Some title
在“一些标题”之前修剪空白是可选的。 我会感激任何帮助
s/s*(<[^>]+>)s*/1/gs
或者,在c#中:
Regex.Replace(html, "s*(<[^>]+>)s*", "$1", RegexOptions.SingleLine);
如果HTML是严格的,请使用XML阅读器加载它并将其写回而不进行格式化。 这将保留标签内的空白,但不保留它们之间的空白。
d仅与Perl 5.8和5.10中的[0-9]不匹配; 它匹配具有digit属性的任何UNICODE字符(包括“ x {1815}”和“ x {FF15}”)。 如果你的意思是[0-9],你必须使用[0-9]或使用字节编译指示(但它会以1个字节的字符转换所有字符串,通常不是你想要的)。
正则表达式在解析HTML方面基本上是不好的(参见你能提供一些为什么难以用正则表达式解析XML和HTML的例子吗? )。 你需要的是一个HTML解析器。 请参阅您是否提供了使用您喜欢的解析器解析HTML的示例? 例如,使用各种解析器。
您可能会发现HTMLAgilityPack答案很有帮助。
s/>s+>
这将删除标记之间的空格以及标记和文本之间的空格。
s/(s*(<))|((>)s*)/24/g
Regex.Replace(input, "<[^>]*>", String.Empty);
试试这个:
s/[^w/d<>]+/gs
使用XSLT的解决方案如下所示:
您可以选择要使用的模板。 当内容存在时,第一个删除所有空格,第二个仅在只有空格或换行符时删除。
我想保留新的行,因为删除换行符会弄乱我的HTML。 所以我选择以下内容。 。
上述就是C#学习教程:使用正则表达式修剪html分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
private static string ProcessHTMLFile(string input) { string opt = Regex.Replace(input, @"( )*", "", RegexOptions.Singleline); opt = Regex.Replace(opt, @"[t]*", "", RegexOptions.Singleline); return opt; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1014251.html