JavaScript-如何使用正则表达式,替换xml节点内容,请给出表达式

JavaScript-如何使用正则表达式,替换xml节点内容,请给出表达式

泛泛之交 发布于 2017-08-06 字数 281 浏览 1165 回复 3

项目中要大量替换XML文件中的内容,传统查找替换方式过于繁琐,使用正则可以达到一次替换的效果,但对于如下节点,如何通过正则表达式搜索出find me,而不包含其它字符?(最好也考虑递归嵌套查找的问题)

示例:
<button title=xxx>find me</button>

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

虐人心 2017-11-07 3 楼
$str="aaaaaaa<button title=xxx>find me</button>bbbbbbbbbb";
preg_match('/<button.*?>(.*?)</button>/', $str, $matches);
echo $matches[1];
echo "n";
echo preg_replace('/<button.*?>(.*?)</button>/', '$1', $str);

输出:

find me
aaaaaaafind mebbbbbbbbbb
想挽留 2017-10-23 2 楼

可以参考一下这篇文章,不知道是否是你想要的结果
@如何利用正则表达式不匹配某个字符串?

夜无邪 2017-08-09 1 楼

使用正则中的“肯定逆序环视”和“肯定顺序环视”即可解决。
正则表达式为:

(?<=<button.*>).*(?=</button>)

需要注意的是,由于PHP的正则引擎限制了后向断言(lookbehind assertion)中匹配的内容必须为定长,所以上述表达式在PHP中会报错,只能利用子模式来解决。