我有和包含此字符串的项目的XML文件:
<field name="itemid">xx</field>
xx
= 50到250之间的数字。
我需要从整个文件中删除整个字符串。
如何使用正则表达式replace
执行此操作?
答案 0 :(得分:0)
你可以用这个:
str = str.replace(/<.*>/g,'');
查看匹配here
的示例
var str = "<field name='itemid'>xx</field>";
str = str.replace(/<.*>/g, 'replaced');
console.log(str)
<强>解释强>
<
字面匹配字符<
.*
匹配任何字符(换行符除外)
*
在零和无限次之间,尽可能多次,根据需要回馈[greedy]
>
字面匹配字符>
g
修饰符:全局。所有比赛(首场比赛时不返回)str = str.replace(/<field name\=\"\w*\">\d*<\/field>/g, '');
查看匹配here
的示例
var str = '<field name="test">200</field>';
str = str.replace(/<field name\=\"\w*\">\d*<\/field>/g, 'replaced');
console.log(str)
<强>解释强>:
<field
名称与字符匹配
\=
字面匹配字符=
\"
字面匹配字符"
\w*
匹配任何字符[a-zA-Z0-9_]
*
在零和无限次之间,尽可能多次,根据需要回馈[greedy]
\"
匹配字符“字面意思>
字面匹配字符>
\d*
匹配数字[0-9]
- 量词:*在零和无限次之间,尽可能多次,根据需要回馈[贪心] <
字面匹配字符<
\/
字面匹配字符/
field>
匹配字符字段&gt;字面意思(区分大小写)g
修饰符:全局。所有比赛(首场比赛时不返回)答案 1 :(得分:0)
当您替换标记特别是XML标记时,您必须确保捕获从打开到关闭标记的所有内容。在这种情况下,RegExp应该回顾。
var re = /<(\S+)[^>]*>.*<\/\1>/g;
var m ='some text <ab id="aa">aa <p>qq</p> aa</ab>test test <p>paragraph </p>'.replace(re,'');
console.log(m);//some text test test
\1
匹配(\S+)
\S+
一个或多个非空白字符