匹配以特定关键字开头的行中以逗号分隔的单词

Match words separated by comma in a line starting with a specific keyword

我有以下文字

type MyType1
type MyType2, MyType3
type MyType4,MyType5,MyType6, ...
NotMyType1, NotMyType2

如何匹配以关键字 type 开头的行中的所有逗号分隔*单词,以便我最后只有

MyType1
MyType2
MyType3
MyType4
MyType5
MyType6

我最初的尝试是匹配所有以逗号分隔的词 (https://regex101.com/r/mQDCgX/1)

(?<=[,])(\w+)(?=[,])|(?<=[\s,])(\w+)(?=[,]|$)

然后尝试将其分组并使用后向匹配 type。但是,它没有用。

注意: * 逗号也可以用空格包围

正在将我的评论转换为答案。

您可以使用这个正则表达式:

(?:\btype|(?!^)\G,)\h*\K[^,\s]*
  • \G 断言位置在前一个匹配的末尾或第一个匹配的字符串的开头。
  • (?!^)用于确定我们不是在开始
  • \K用于重置匹配信息

RegEx Demo