正则匹配问题

我想从 {t('word')} {t("word1")} {t(`word2`)} {t(word3)} 捕获出这个数组 ['word', 'word1', 'word2', 'word3']

我的正则表达式是这个 /(?<=t\(([`|'|"]?))(.*?)(?=\1\))/g.

但是,我捕获的数组里都像这样"'word'"带有引号。

所以我应该怎么改进能达到对应的效果呢?

回答

\{t\([\'\"]?(\w+)[\'\"]?\)\}

正则匹配问题

const string = "{t('word')} {t(\"word1\")} {t(`word2`)} {t(word3)}";

string.match(/(?<=(?:^|\s)\u007b\u0074\u0028([\u0022\u0027\u0060]?))[^\u0022\u0027\u0060]+(?=\1\u0029\u007d(?:\s|$))/g);

你本来就用括号括起来啦,所以捕获的就带引号啊。

以上是 正则匹配问题 的全部内容, 来源链接: utcz.com/a/102980.html

回到顶部