繁体   English   中英

正则表达式,用于删除除特定范围的字符外的所有字符串

[英]Regex for remove all string except an range of specific characters


我需要您的帮助,以便使用HTML正则表达式中的HTML文档删除所有字符, 除了 <body></body>和body标签内的整个字符串

我尝试使用此方法,但不起作用:

var str = "<html><head><title></title></head><body>my content</body></html>"
str.replace(/[^\<body\>(.+)\<\\body\>]+/g,'');

我只需要正文内容,其他选择是使用DOMParser

var oParser = new DOMParser(str);
var oDOM = oParser.parseFromString(str, "text/xml");

但这会引发解析通过Ajax加载我的字符串文档的错误。
预先感谢您的建议!

var str = "<html><head><title></title></head><body>my content</body></html>"

str=str.match(/<(body)>[\s\S]*?<\/\1>/gi);

//also you can try this:
//str=str.match(/<(body)>.*?<\/\1>/gis);

正则表达式可视化

Debuggex演示

您可以尝试此代码,

> var str = "<html><head><title></title></head><body>my content</body></html>"
undefined
> str.replace(/.*?(<body>.*?<\/body>).*/g, '$1');
'<body>my content</body>'

演示

您不能(或至少不应该)使用replace执行此操作; 尝试match

var str = "<html><head><title></title></head><body>my content</body></html>"
var m = str.match(/<body>.*<\/body>/);
console.log(m[0]); //=> "<body>my content</body>"

如果您有多行字符串,请更改. (不包含\\n )到[\\S\\s] (非空白或空白)或类似内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM