【发布时间】:2019-01-27 10:56:16
【问题描述】:
我有以下文字
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+)(?=[,]|$)
然后尝试对它进行分组并使用lookbehind来匹配type。但是,它没有用。
注意: * 逗号也可以用空格括起来
【问题讨论】:
-
你使用什么语言?
-
试试
(?:^type|\G(?!^)),? +\K(\w+)。在此处查看现场演示regex101.com/r/CV9jqu/1 -
您可以使用:
(?:\btype|(?!^)\G,)\h*\K[^,\s]* -
不客气。我鼓励您将不成功的尝试添加到您的问题中,以便我们发布答案。目前它没有显示您为解决问题所做的任何努力。
-
我进一步测试,当单词严格用逗号分隔时,@revo 的答案似乎停止匹配,即两者之间没有空格。 anubhava 的答案中的 \h* 似乎可以处理它。
标签: regex pcre regex-lookarounds