我无法部署一个工作过程来使用多个正则表达式模式来匹配和替换以下名称模式。我需要提取姓氏,名字,中间的首字母或用空格填充它,并在它们之间放置逗号。

在:


“希尔,ADAM APRN”
“史密斯,约翰B APRN”
“琼斯·威尔逊,罗伯特·阿普恩”


出:


“希尔,ADAM,”,APRN“
“史密斯,约翰,B,APRN”
“琼斯·威尔逊,罗伯特,APRN”


我使用的程序停止在名字上

任何帮助将不胜感激。

谢谢-马特

最佳答案

如果确实需要使用正则表达式,则(\w+(?:-\w+)?),(\w+)\s(?:([a-zA-Z]{1})\s)?(\w+)将为您提供所需的捕获。

但是,像这样使用split函数会容易得多。

var name = "HILL,ADAM APRN";
var newName = name.split(/[ ,]/).join(',')

10-04 16:10