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"]

最后附一下用到的零宽断言:


本文内容均属个人原创作品,转载此文章须附上出处及原文链接。

加关注,定时推送,互动精彩多,若你有更好的见解,欢迎留言探讨!

举报
评论 0