从多行字符串中获取所有名称

Fetching all names from multiline string

我试图从多行字符串和消息正文中获取所有姓名(包括姓氏),但不知何故它只获取了一个姓名。

示例:

Hi Marc, Stefanie El, Paul

Congrats on the new job!

I hope you’re feeling better this morning!

我使用的正则表达式:

/(?<=^hi )(\W*(\w+ *\w*)+)*/gmi

据我了解,第一个字幕组应该反复查找尽可能多的名字,但这样做行不通!

我这个正则表达式犯了什么错误?

提前致谢。

不确定为什么要标记 PCRE,但可以这样做:

(?:\G(?!\A)|Hi\s*)
(?P<name>[A-Z][^,\n\r]+)
(?:,\h)?

参见a demo on regex101.com