我想在这些'''字符之间分割一个字符串 我的字符串看起来像这样:
const str = " My random text '''tag1''' '''tag2''' ";
,输出应如下所示:["tag1", "tag2"]
答案 0 :(得分:1)
使用带有捕获组和RegEx.exec()
的正则表达式来提取三个撇号之间的任何子字符串。该模式使用惰性匹配(.*?
)来匹配撇号之间的任何字符序列(包括无)。
const str = " My random text '''tag1''' '''tag2''' ";
re = /'''(.*?)'''/g;
matches = [];
while (match = re.exec(str)) {
matches.push(match[1]);
}
console.log(matches);
<强>输出强>
[ 'tag1', 'tag2' ]
答案 1 :(得分:0)
您可以使用以下功能:
function getBetween(content, start, end) {
var result = [];
var r = content.split(start);
for (var i = 1; i < r.length; i++) {
result.push(r[i].split(end)[0]);
if (i < r.length - 1) { i++; }
}
return result;
}
用法:
var result = getBetween(str, "'''", "'''");
导致
["tag1", "tag2"]
const str1 = " My random text '''tag1''' '''tag2''' ";
const str2 = "String '''tag1''' this will work '''tag2'''.";
const str3 = "'''tag1''' '''tag2''' sup man '''tag3'''";
function getBetween(content, start, end) {
var result = [];
var r = content.split(start);
for (var i = 1; i < r.length; i++) {
result.push(r[i].split(end)[0]);
if (i < r.length - 1) { i++; }
}
return result;
}
var result1 = getBetween(str1, "'''", "'''");
var result2 = getBetween(str2, "'''", "'''");
var result3 = getBetween(str3, "'''", "'''");
console.log(result1);
console.log(result2);
console.log(result3);
希望这有帮助
答案 2 :(得分:0)
我认为一个简短而甜蜜的方法是:
var regex = /(?<=''')\w+(?=''')/mgi;
var matches = "My random text '''tag1''' '''tag2'''".match(regex);
结果:(2)[“tag1”,“tag2”]
它匹配任何出现'''之间的所有内容。
答案 3 :(得分:-1)
尝试使用如下的模板文字:
str.split(`'''`);
结果可能如下所示:
[" My random text ", "tag1", " ", "tag2", " "]
希望这个帮助;)