Regexp_replace 返回无效号码
Invalid Number is returned by Regexp_replace
我想从名字中删除像 Dr., Mr. Jr. 这样的头衔。 Regexp_replace
应搜索并删除 Dr. Mr. Jr 并且搜索应不区分大小写,最终输出不应包含 .
或 ,
或名称中的额外空格。
select regexp_replace('DR. Mr. Mr Dr Radha Jr Jr. Krishnan Jr.','(Dr|Mr|Jr)(\W|\w|$|,)',1,0,'i')
from dual
我收到无效号码错误。
您忘记了在 pattern 和 1 之间替换什么
select regexp_replace('DR. Mr. Mr Dr Radha Jr Jr. Krishnan Jr.','(Dr|Mr|Jr)(\W|\w|$|,)','',1,0,'i')
from dual
以下查询将删除多个空 space 和 trim 前导 space:
SELECT TRIM(REGEXP_REPLACE(
REGEXP_REPLACE('DR. Mr. Mr Dr Radha Jr Jr. Krishnan Jr.', '(Dr|Mr|Jr)(\W|\w|$|,)', '', 1, 0, 'i')
, ' {2,}', ' ')) AS "Result"
FROM Dual
它会return结果为Radha Krishnan
您的解决方案缺少两个方面。
更重要的是,您可以从名称中删除前导 "titles":
select regexp_replace('DR. Mr. Mr Dr Dradha Jr Jr. Mrishnan Jr.','(Dr|Mr|Jr)(\W|\w|$|,)','',1,0,'i')
from dual
哪个returns不是预期的结果
dha shnan
补救方法是只允许非单词字符(\W
)和行尾($
)之后标题.
如果在标题 之前强制执行可选 space 或行首 (^
) ,则可以解决第二个问题 [=删除标题后还剩 34=]s
select regexp_replace('DR. Mr. Mr Dr Dradha Jr Jr. Mr, Mrishnan Jr.',
'( *|^)(Dr|Mr|Jr)(\W|$)','',1,0,'i')
from dual
Dradha Mrishnan
我想从名字中删除像 Dr., Mr. Jr. 这样的头衔。 Regexp_replace
应搜索并删除 Dr. Mr. Jr 并且搜索应不区分大小写,最终输出不应包含 .
或 ,
或名称中的额外空格。
select regexp_replace('DR. Mr. Mr Dr Radha Jr Jr. Krishnan Jr.','(Dr|Mr|Jr)(\W|\w|$|,)',1,0,'i')
from dual
我收到无效号码错误。
您忘记了在 pattern 和 1 之间替换什么
select regexp_replace('DR. Mr. Mr Dr Radha Jr Jr. Krishnan Jr.','(Dr|Mr|Jr)(\W|\w|$|,)','',1,0,'i')
from dual
以下查询将删除多个空 space 和 trim 前导 space:
SELECT TRIM(REGEXP_REPLACE(
REGEXP_REPLACE('DR. Mr. Mr Dr Radha Jr Jr. Krishnan Jr.', '(Dr|Mr|Jr)(\W|\w|$|,)', '', 1, 0, 'i')
, ' {2,}', ' ')) AS "Result"
FROM Dual
它会return结果为Radha Krishnan
您的解决方案缺少两个方面。
更重要的是,您可以从名称中删除前导 "titles":
select regexp_replace('DR. Mr. Mr Dr Dradha Jr Jr. Mrishnan Jr.','(Dr|Mr|Jr)(\W|\w|$|,)','',1,0,'i')
from dual
哪个returns不是预期的结果
dha shnan
补救方法是只允许非单词字符(\W
)和行尾($
)之后标题.
如果在标题 之前强制执行可选 space 或行首 (^
) ,则可以解决第二个问题 [=删除标题后还剩 34=]s
select regexp_replace('DR. Mr. Mr Dr Dradha Jr Jr. Mr, Mrishnan Jr.',
'( *|^)(Dr|Mr|Jr)(\W|$)','',1,0,'i')
from dual
Dradha Mrishnan