简体   繁体   English

使用正则表达式删除字符串中标签外的文本

[英]Regular expression to remove text outside the tags in a string

Here is my string. 这是我的绳子。 Which will contain XML string 其中将包含XML字符串
Like below 像下面

 var str= "<str>rvrv</str>rvrv<q1>vrvv</q1>vrvrv<q2>rtvrvr</q2>";

How can I remove text outside tags(text which does not belong to any tag.) using regular expression. 如何使用正则表达式删除标签外的文本(不属于任何标签的文本)。 Please help me on this. 请帮我。

Assuming your problem is only removing text not enclosed inside an element (and remaining code is well formed so you haven't strings like 假设您的问题只是删除未包含在元素内的文本(并且剩余代码格式正确,因此您没有像

var str= "<str>lorem <b>ipsum</str>";

) you could use a regular expression like this )您可以使用这样的正则表达式

var str= "<str>rvrv</str>rvrv<q1>vrvv</q1>vrvrv<q2>rtvrvr</q2>",
    elements = str.match(/<(.+?)>[^<]+<\/\1>/gi);

console.log(elements.join(''));

and this returns 然后返回

<str>rvrv</str><q1>vrvv</q1><q2>rtvrvr</q2>

Note: to detect closing tags I used a backreference (see http://www.regular-expressions.info/brackets.html ) 注意:要检测结束标记,我使用了反向引用(请参阅http://www.regular-expressions.info/brackets.html

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

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