Regex 正则表达式:匹配没有字母的电话号码
我试图在PL/SQL代码中为一些检查构建一个正则表达式(因此我使用的是可以使用(POSIX)标准草案1003.2/D11.2的Oracle数据库) 我想匹配所有可能是电话号码的输入变量。我已经创建了这个正则表达式:Regex 正则表达式:匹配没有字母的电话号码,regex,oracle,numbers,expression,letter,Regex,Oracle,Numbers,Expression,Letter,我试图在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-_14
[+0-9][0-9- ()_]{4,20}
我唯一的问题(要得到我想要的)是:如果输入字符串中有任何字母将由我的正则表达式测试,则正则表达式将在字母之后和/或之前有一个匹配项
示例1:
Input: " 044-d4(54)1-_14455"
Match: "4(54)1-_14455"
Input: "044444-d4(54)1d-_14455"
Match1: "044444-"
Match2: "4(54)1"
Match3: "14455"
Input: "+904 4-4(54)1-_14455"
Match1: "+904 4-4(54)1-_14455"
-->数字-->中的“d”应不匹配
示例2:
Input: " 044-d4(54)1-_14455"
Match: "4(54)1-_14455"
Input: "044444-d4(54)1d-_14455"
Match1: "044444-"
Match2: "4(54)1"
Match3: "14455"
Input: "+904 4-4(54)1-_14455"
Match1: "+904 4-4(54)1-_14455"
-->数字-->中的两个“d”应不匹配
示例3:
Input: " 044-d4(54)1-_14455"
Match: "4(54)1-_14455"
Input: "044444-d4(54)1d-_14455"
Match1: "044444-"
Match2: "4(54)1"
Match3: "14455"
Input: "+904 4-4(54)1-_14455"
Match1: "+904 4-4(54)1-_14455"
-->对!我希望这一个是匹配的
我只想这样修改我的正则表达式,如果电话号码中有字母,它将不会返回匹配项。所有其他特殊字符,如-/(),都可以使用
我已经在谷歌上搜索过了,但我在正则表达式方面不是专家,所以我所有的尝试都没有成功 您可以在正则表达式中使用字符串的开头(^)和结尾($)
^[+0-9][0-9- ()_]{4,20}$