Regex过滤掉某些字符组

Regex to filter away certain groups of characters

本文关键字:字符 过滤 Regex      更新时间:2023-09-26

我正在尝试构建一个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}}的东西)

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

正则表达式是惰性的,因此它将在第一次出现}}时停止。

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

var str = 'apa {{abc}} banan apple {{def}} citrus apelsin {{ghi}} mango korsbar';
var arr = str.split(/{{.*?}}/);
console.log(arr);

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

's*{{.*?}}'s*

's*将在带括号的字符串周围匹配0个或多个空格并将其删除。

var str = 'apa {{abc}} banan apple {{def}} citrus apelsin {{ghi}} mango korsbar';
var arr = str.split(/'s*{{.*?}}'s*/);
console.log(arr);