【发布时间】:2020-01-25 15:08:42
【问题描述】:
我正在尝试为我的 PL/SQL 代码中的一些检查构建一个正则表达式(所以我正在使用可以使用 (POSIX) 标准草案 1003.2/D11.2 的 Oracle 数据库)。
我想匹配可能是电话号码的所有输入变量。我已经创建了这个正则表达式:
[+0-9][0-9- ()_]{4,20}
我唯一的问题(得到我想要的)是:如果输入字符串中有任何字母将由我的正则表达式测试,则正则表达式将在信件。
示例 1:
Input: " 044-d4(54)1-_14455"
Match: "4(54)1-_14455"
-->数字中的“d”-->应该有没有匹配
示例 2:
Input: "044444-d4(54)1d-_14455"
Match1: "044444-"
Match2: "4(54)1"
Match3: "14455"
--> 数字内有两个“d” --> 应该有没有匹配
示例 3:
Input: "+904 4-4(54)1-_14455"
Match1: "+904 4-4(54)1-_14455"
--> 正确!我想要这个匹配。
我只想这样修改我的正则表达式,如果电话号码中有任何字母,它就不会返回匹配项。 _-/() 等所有其他特殊字符都可以使用。
我已经用谷歌搜索过了,但我不是正则表达式方面的专家,所以我所有的尝试都没有成功......
【问题讨论】:
标签: regex oracle numbers expression letter