最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Get values inside double curly braces with regex - Stack Overflow

programmeradmin0浏览0评论

From this string:

dfasd {{test}} asdhfj {{te{st2}} asdfasd {{te}st3}}

I would like to get the following substrings:

test, te{st2, te}st3

In other words I want keep everything inside double curly braces including single curly braces.

I can't use this pattern:

{{(.*)}}

because it matches the whole thing between first {{ and last }}:

test}} asdhfj {{te{st2}} asdfasd {{te}st3

I managed to get the first two with this regex pattern:

{{([^}]*)}}

Is there any way to get all three using regex?

From this string:

dfasd {{test}} asdhfj {{te{st2}} asdfasd {{te}st3}}

I would like to get the following substrings:

test, te{st2, te}st3

In other words I want keep everything inside double curly braces including single curly braces.

I can't use this pattern:

{{(.*)}}

because it matches the whole thing between first {{ and last }}:

test}} asdhfj {{te{st2}} asdfasd {{te}st3

I managed to get the first two with this regex pattern:

{{([^}]*)}}

Is there any way to get all three using regex?

Share Improve this question edited Mar 14, 2018 at 15:06 eugenesqr asked Mar 14, 2018 at 14:37 eugenesqreugenesqr 5796 silver badges19 bronze badges 1
  • 1 Try {{(.*?)}} – ctwheels Commented Mar 14, 2018 at 14:42
Add a ment  | 

2 Answers 2

Reset to default 11

Try {{(.*?)}}.

.*? means to do a lazy / non greedy search => as soon as }} matches, it will capture the found text and stop looking. Otherwise it will do a greedy search and therefore start with the first {{ and end with the very last }}.

This isn't that pretty, but it doesn't use RegEx and makes it clear what you are trying to acplish.

const testString = 'dfasd {{test}} asdhfj {{te{st2}} asdfasd {{te}st3}}';

const getInsideDoubleCurly = (str) => str.split('{{')
  .filter(val => val.includes('}}'))
  .map(val => val.substring(0, val.indexOf('}}')));

console.log(getInsideDoubleCurly(testString));

发布评论

评论列表(0)

  1. 暂无评论