js-一招教你如何在代码中用正则取得括号中的值
今天项目有个需求,获取指定括号内的内容,并分组分组显示出来。
例子:
<label class='ui-cell-label'>
<span data-i18n='{%=cbb_items.SCRNITM#id%}'></span>
<span data-i18n='{%=cbb_items.SCRNITM#tp%}'></span>
</label>
需要获取到 `{%=` 与 `%}` 之间的内容
下面看下示例代码吧!
JavaScript 实现代码:
var a = "<label class='ui-cell-label'>" +
"<span data-i18n='{%=cbb_items.SCRNITM#id%}'></span>" +
"<span data-i18n='{%=cbb_items.SCRNITM#tp%}'></span>" +
"</label>";
var b = [];
var c = a.replace(/{%=(.*?)%}/g, function ($0) {
b.push($0.replace(/{%=(.*?)%}/g, '$1'));
});
console.log(b);
// 输出结果 ["cbb_items.SCRNITM#id", "cbb_items.SCRNITM#tp"]
Java 实现代码:
public List<String> getDataList(String managers){
List<String> arr=new ArrayList<String>();
Pattern pattern = Pattern.compile("(?<=\\{%=)(.*?)(?=%})");
Matcher matcher = pattern.matcher(managers);
while(matcher.find()) {
arr.add(matcher.group());
}
return arr;
}
// 输出结果 ["cbb_items.SCRNITM#id", "cbb_items.SCRNITM#tp"]
最后附一下用到的零宽断言:
本文内容均属个人原创作品,转载此文章须附上出处及原文链接。
加关注,定时推送,互动精彩多,若你有更好的见解,欢迎留言探讨!
请先 后发表评论~