正则表达式过滤掉某些字符组

时间:2016-10-19 09:42:53

标签: javascript regex

我正在尝试构建一个遍历字符串的regexp,并返回不属于标记代码的匹配项。

到目前为止尝试了不同的事情,但只要标记为{{ }},它就会忽略{{}}但会返回括号内的字词。

(\w+(?<!{{.}}))

示例文字:

apa {{abc}} banan apple {{def}} citrus apelsin {{ghi}} mango korsbar

我希望它返回以下4个匹配的组:

apa
banan apple
citrus apelsin
mango korsbar

如果无法满足上述要求,则以下7个匹配的组也可以使用:

apa
banan
apple
citrus
apelsin
mango
korsbar

与使用html替换标记时的排序相同,但不是替换它应该提取除标记之外的所有内容。

(标记代码当然可以改变,因此需要使用{{something}}删除任何内容

1 个答案:

答案 0 :(得分:2)

该字符串可以由{{.*?}}正则表达式拆分。这将获得除数组中两个大括号中的字符串以外的字符串。

正则表达式很懒,所以它会在第一次出现}}时停止。

str.split(/{{.*?}}/)

var str = 'apa {{abc}} banan apple {{def}} citrus apelsin {{ghi}} mango korsbar';

var arr = str.split(/{{.*?}}/);
console.log(arr);

要删除字符串周围的空格,请使用正则表达式

\s*{{.*?}}\s*

\s*此处将匹配括号内的字符串周围的零个或多个空格并将其删除。

var str = 'apa {{abc}} banan apple {{def}} citrus apelsin {{ghi}} mango korsbar';

var arr = str.split(/\s*{{.*?}}\s*/);
console.log(arr);