我正在尝试编写一个regexp_replace来为某些员工创建一个“友好”的名称。它们目前存储为FIRST <POSSIBLE MIDDLE INITIAL> LAST <POSSIBLE SUFFIX> <MULTIPLE WHITESPACE> SITE_ID
例如,
JOHN SMITH ABC
JOHN Q SMITH ABC
JOHN Q SMITH III ABC
我正在尝试写一个正则表达式,以便我最终得到:
Smith, John
Smith, John Q
Smith III, John Q
ABC“站点ID”不需要包含在我的输出中。
这是我尝试的但收效甚微:
regexp_replace(
employee_name,
'^(\S+)\s(\S+)\s(\S+)',
'\3, \1 \2'
)
另外,我使用的是Oracle 10G。任何帮助将不胜感激!
答案 0 :(得分:1)
如果你的名字没有显示ruakh指出的问题,即没有单字母的姓名或姓氏,也没有西班牙语名字,你可以试试这个正则表达式:
^(\S+)\s(\S\s)?(\S+)(\s\S+)?\s\s+\S+$
替换应该是:
\3\4, \1\2