我有以下字符串:
@[A:B:C].[X:Y:Z].[P:Q:R] 1.C.3.s @[1:2:3].[2:0:0].[5dsh:cxcv:wew]
我想从这些中提取以下格式的子字符串:
@[anything here].[anything here].[anything here]
在上述情况下,输出子字符串应为:
@[A:B:C].[X:Y:Z].[P:Q:R]
@[1:2:3].[2:0:0].[5dsh:cxcv:wew]
我有这个匹配这些子字符串的正则表达式:
(@\w+|@(?:\[[^\]]+\]\.?)+)
要测试这个正则表达式,我将在这个小提琴中用$
替换这些子字符串:http://jsfiddle.net/vfe50z0o/
正则表达式没有问题,因为它在此Regex101演示中有效:https://regex101.com/r/aH9nK5/1
但是在JSFiddle上它没有用。
这是JavaScript代码:
function myFunction() {
var re = /(@\w+|@(?:\[[^\]]+\]\.?)+)/;
var str = 'wewe@[s].[s].[s]xvcv';
var subst = '$';
var result = str.replace(re, subst);
alert(result);
}
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用此代码来获取匹配项:
var re = /(@\w*(?:\[[^\]]+\]\.?)+)/g;
var str = '@[A:B:C].[X:Y:Z].[P:Q:R] 1.C.3.s @[1:2:3].[2:0:0].[5dsh:cxcv:wew]';
var m;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex)
re.lastIndex++;
console.log(m[1]);
}
<强>输出:强>
@[A:B:C].[X:Y:Z].[P:Q:R]
@[1:2:3].[2:0:0].[5dsh:cxcv:wew]