我想替换标签之间的\ r \ n和所有空格[例如:><],但不包括标签之间的空格。
<html>\r\n <body>\r\n
<p>\r\n
<input name=\"Directory\" style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\" />\r\n <span style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\">\r\n </span>\r\n
</p>\r\n
<p>\r\n
<span style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\"> </span>\r\n <input name=\"FileName\" style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\" />\r\n <span style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\"></span>\r\n </p>\r\n </body>\r\n</html>
编辑: 以上只是html字符串的一个例子我是如何得到的。我试着为它写一个正则表达式:
private static readonly Regex REGEX_FOR = new Regex(@"(?<!></span)>\\r\\n|[\s]*<");
新编辑:
我也不想在
之前替换/ r / n。这就是我希望它们用于我的段落标记之间的换行符。 我希望我的输出是这样的:
<html><body>
<p>
<input name=\"Directory\" style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\" />\r\n <span style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\">\r\n </span>\r\n
</p>
\r\n
<p>
<span style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\"> </span><input name=\"FileName\" style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\" />
<span style=\"font-size:11;font-weight:normal;font-style:normal;color:#FF406080\"></span>
</p>
</body>
</html>
答案 0 :(得分:0)
如前所述,对于reqex查询,最好提供所需输出的示例,而不是相当模糊的描述。也就是说,下面的表达式应该理清你需要的东西。
Search Expression: >(\r\n\s+) <
Replace Expression: > <
\ n \ n \ n \ n \ n令牌将匹配任何空格,您可以安全地删除\ r \ n并仅使用\ s进行匹配,但上面的表达式将强制执行新行是任何匹配的开始模式(假设这是需要的)。
然后根据需要将任何内容添加回span标记:
Search Expression (<span [^>]+>)(</span>)
Replace Expression: $1 $2
答案 1 :(得分:0)
在我的网上regextester查看我的示例
试试这个正则表达式:
string.replaceAll("\\r\\n[ \\t]*"," ")
注意:
这会删除换行符并跟随可选的空格。只要 span 之间没有换行符,就不会替换空格。
我认为用单个空格而不是空格替换空格更省事。
如果需要,您可以添加一些正则表达式外观。例如负向前瞻意思是“与以前相同的正则表达式未跟随&lt; / span&gt; ”
string.replaceAll("\\r\\n[ \\t]*(?!</span>)"," ")