正则表达式:匹配 phone 个没有字母的数字
Regular Expression: Matching phone numbers without letters in it
我正在尝试为我的 PL/SQL 代码中的某些检查构建一个正则表达式(所以我使用的是 Oracle 数据库,它可以使用 (POSIX) 标准草案 1003.2/D11.2)。
我想匹配所有可能是 phone 数字的输入变体。我已经创建了这个正则表达式:
[+0-9][0-9- ()_]{4,20}
我唯一的问题(得到我想要的)是:如果输入字符串中有任何字母将由我的正则表达式测试,则正则表达式将在 [=50 之后匹配=] 在字母之前。
示例 1:
Input: " 044-d4(54)1-_14455"
Match: "4(54)1-_14455"
--> "d"号内-->应该有没有匹配
例二:
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"
--> 正确!我要这个匹配。
我只是想这样修改我的正则表达式,如果 phone 数字中有任何字母,它就不会 return 匹配。所有其他特殊字符,如 _-/() 都可以。
我已经用谷歌搜索过了,但我不是正则表达式方面的专家,所以我所有的尝试都没有成功...
您可以在正则表达式中使用字符串开头 (^) 和字符串结尾 ($)。
^[+0-9][0-9- ()_]{4,20}$
我正在尝试为我的 PL/SQL 代码中的某些检查构建一个正则表达式(所以我使用的是 Oracle 数据库,它可以使用 (POSIX) 标准草案 1003.2/D11.2)。
我想匹配所有可能是 phone 数字的输入变体。我已经创建了这个正则表达式:
[+0-9][0-9- ()_]{4,20}
我唯一的问题(得到我想要的)是:如果输入字符串中有任何字母将由我的正则表达式测试,则正则表达式将在 [=50 之后匹配=] 在字母之前。
示例 1:
Input: " 044-d4(54)1-_14455"
Match: "4(54)1-_14455"
--> "d"号内-->应该有没有匹配
例二:
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"
--> 正确!我要这个匹配。
我只是想这样修改我的正则表达式,如果 phone 数字中有任何字母,它就不会 return 匹配。所有其他特殊字符,如 _-/() 都可以。
我已经用谷歌搜索过了,但我不是正则表达式方面的专家,所以我所有的尝试都没有成功...
您可以在正则表达式中使用字符串开头 (^) 和字符串结尾 ($)。
^[+0-9][0-9- ()_]{4,20}$