我有以下正则表达式:
{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:'之后的内容,并且在“}”之前?那也可以。
答案 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) );