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

时间:2019-01-27 10:56:16

标签: regex pcre regex-lookarounds

我有以下文字

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+)(?=[,]|$)

然后尝试将其分组,并使用向后搜索来匹配类型。但是,它没有用。

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

1 个答案:

答案 0 :(得分:1)

将我的评论转换为答案。

您可以使用此正则表达式:

(?:\btype|(?!^)\G,)\h*\K[^,\s]*
  • \G在上一场比赛的末尾或首场比赛的字符串开头声明位置。
  • (?!^)用于确保我们不处于起步阶段
  • \K用于重置匹配信息

RegEx Demo