在TypeScript中使用关键字regex获取字符串的一部分

时间:2018-06-23 00:04:06

标签: javascript c# regex typescript

我有以下正则表达式:

{thing:([^}]*)}

这完全匹配'{thing:'和'}',并在中间允许任何!}。

在C#中,我只能使用以下内容来抓取中间的内容:

regex.Matches(stringToCheckForMatches).Cast<Match>().Select(x => x.Groups[1].Value);

是否有等效的方法可以在TypeScript中获取这些中间内容?还要注意,stringToCheckForMatches可以包含{thing:}关键字的多个实例(带有任何中间内容)。

例如,我想要这个:

'fooBar/{thing:hi}{thing:hello}'

要返回(最好在数组/列表中):

hi
hello

或者,如果您无法在TypeScript中访问.match捕获(坦率地说,我不确定),是否可以将正则表达式更改为仅捕获'{thing:'之后的内容,并且在“}”之前?那也可以。

1 个答案:

答案 0 :(得分:1)

用正则表达式分割会得到select coalesce(sum(admitted), 0) as admitted, coalesce(sum(DischargedFromED), 0) as DischargedFromED from t;

["fooBar/", "hi", "", "hello", ""]

console.log( 'fooBar/{thing:hi}{thing:hello}'.split(/{thing:([^}]*)}/) );可用于获取奇数元素:

filter

console.log( 'fooBar/{thing:hi}{thing:hello}'.split(/{thing:([^}]*)}/).filter((_, i) => i & 1) );


不带正则表达式的替代项:

console.log( 'fooBar/{thing:hi}{thing:hello}'.split(/.*?{thing:(.*?)}.*?/).filter(Boolean) );