Oracle 10G 名称正则表达式
我正在尝试编写一个 regexp_replace 来为某些员工创建一个“友好”的名字。它们当前存储为 FIRST
例如,
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。任何帮助将不胜感激!
I am trying to write a regexp_replace to create a "Friendly" name for some employees. They are currently stored as FIRST <POSSIBLE MIDDLE INITIAL> LAST <POSSIBLE SUFFIX> <MULTIPLE WHITESPACE> SITE_ID
For example,
JOHN SMITH ABC
JOHN Q SMITH ABC
JOHN Q SMITH III ABC
I am trying to write a regex so that I will end up with:
Smith, John
Smith, John Q
Smith III, John Q
The ABC "Site ID" doesn't need to be included in my output.
This is what I tried with little success:
regexp_replace(
employee_name,
'^(\S+)\s(\S+)\s(\S+)',
'\3, \1 \2'
)
Also, I am using Oracle 10G. Any help would be greatly appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你的名字没有出现 ruakh 指出的问题,即没有单字母名字或姓氏,也没有西班牙裔名字,你可以尝试这个正则表达式:
替换应该是:
If your names don't show the problems ruakh points out, i.e., there aren't single-letter names or surnames, and no Hispanic names, you can try this regexp:
The replacement should be: