[英]Regex remove line breaks
我希望有人可以帮助我。 我不确定如何使用以下正则表达式。 我正在使用Javascript的经典ASP
completehtml = completehtml.replace(/\<\!-- start-code-remove --\>.*?\<\!-- start-code-end --\>/ig, '');
我有这个代码删除之间的所有内容
<\\!-- start-code-remove --\\>
和<\\!-- start-code-end --\\>
它完美无缺,直到start
和end
代码之间的值有line breaks
......
即使有line breaks
我如何编写正则表达式以删除start
和end
之间的所有内容
万分感谢...
Shoud我使用\\n
和\\s
字符不是100%肯定..
(/\<\!-- start-code-remove --\>\s\n.*?\s\n\<\!-- start-code-end --\>/ig, '');
此代码也不应该在<\\!-- start-code-remove --\\> <\\!-- start-code-end --\\>/
之间贪婪,并捕获组中的值...
可能有3个或更多这些集......
点与Javascript中的新行不匹配,也没有修改器可以使它(与大多数现代正则表达式引擎不同)。 常见的解决方法是使用此字符类代替点: [\\s\\S]
。 所以你的正则表达式成为:
completehtml = completehtml.replace(
/\<\!-- start-code-remove --\>[\s\S]*?\<\!-- start-code-end --\>/ig, '');
试试(.|\\n|\\r)*
。
completehtml = completehtml.replace(/\<\!-- start-code-remove --\>(.|\n|\r)*?\<\!-- start-code-end --\>/ig, '');
确实没有/ s修饰符使点匹配所有字符,包括换行符。 要绝对匹配任何字符,您可以使用包含速记类及其否定版本的字符类,例如[\\ s \\ S]。
javascript中的正则表达式支持不是很可靠。
function remove_tag_from_text(text, begin_tag, end_tag) {
var tmp = text.split(begin_tag);
while(tmp.length > 1) {
var before = tmp.shift();
var after = tmp.join(begin_tag).split(end_tag);
after.shift();
text = before + after.join(end_tag);
tmp = text.split(begin_tag);
}
return text;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.