我正在尝试清理一些原始用户输入的地址目录,以便以后处理。删除了数字和特殊字符后,现在我有了类似的字符串:
ST SOMETHING SOMEWHERE H BL D S
所以,ST
代表街道,H
房子等等。不要试图在这里超精确,所以我认为只删除3个字符以下的东西就足够了,但是我似乎无法在Oracle中找到正确的正则表达式。试过了:
SELECT
regexp_replace('ST SOMETHING SOMEWHERE H BL D S','[\ ^]\w{1,3}[\ $]', ' ')
FROM dual;
产生:
ST SOMETHING SOMEWHERE BL S
我希望我只有
SOMETHING SOMEWHERE
有人能借给我一把手吗?
(我在oracle 11g上)
答案 0 :(得分:0)
试
SELECT
regexp_replace(
'<raw string>'
,'(^|[[:space:]])([^[:space:]]{1,3}[[:space:]]+)*[^[:space:]]{1,3}([[:space:]]|$)'
, ' '
)
FROM dual;
希望能满足您的需求,问候,汽车