PLSQL - 帮助我的正则表达式 phone 号码和区号
PLSQL - help on my regex phone number with area code
我很难在 PL/SQL 下找到正确的正则表达式,但我的正则表达式通常很好
我有这样一个 phone 号码:
+44 (0)22 3333 4444 from the text that should not be there
我想得到这个:
+4402233334444
所以我制作了以下正则表达式:
/[^+\d]|\s/g
它在网站 https://regexr.com/ 上运行良好,但在我的 PL/SQL 查询中却不行,它给了我相同的结果
我尝试使用 oracle 文档,但没有成功
https://www.techonthenet.com/oracle/regexp_like.php
不应在括号表达式中使用 \d
和其他 shorthand 字符 类。
您可以使用
SELECT
REGEXP_REPLACE(
'+44 (0)22 3333 4444',
'[^+0-9]',
''
) As Result FROM dual;
其中 [^+0-9]
匹配 +
和数字以外的任何字符。
参见DB fiddle。
请注意,[^+0-9]
已经匹配任何空白字符,因为 +
以外的非数字字符也匹配 \s
匹配的内容,因此您可以安全地省略 |\s
来自你的正则表达式。
我很难在 PL/SQL 下找到正确的正则表达式,但我的正则表达式通常很好
我有这样一个 phone 号码:
+44 (0)22 3333 4444 from the text that should not be there
我想得到这个:
+4402233334444
所以我制作了以下正则表达式:
/[^+\d]|\s/g
它在网站 https://regexr.com/ 上运行良好,但在我的 PL/SQL 查询中却不行,它给了我相同的结果
我尝试使用 oracle 文档,但没有成功 https://www.techonthenet.com/oracle/regexp_like.php
不应在括号表达式中使用 \d
和其他 shorthand 字符 类。
您可以使用
SELECT
REGEXP_REPLACE(
'+44 (0)22 3333 4444',
'[^+0-9]',
''
) As Result FROM dual;
其中 [^+0-9]
匹配 +
和数字以外的任何字符。
参见DB fiddle。
请注意,[^+0-9]
已经匹配任何空白字符,因为 +
以外的非数字字符也匹配 \s
匹配的内容,因此您可以安全地省略 |\s
来自你的正则表达式。