Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用字母书写的电话号码的正则表达式_Regex - Fatal编程技术网

Regex 用字母书写的电话号码的正则表达式

Regex 用字母书写的电话号码的正则表达式,regex,Regex,我有一个与电话号码匹配的regexp (((\d).{0,5}){7}) 但现在我需要一个常规表达式,它匹配用字母字符书写的电话号码,如下所示: nueve nueve tres uno cinco cero tres cinco cinco siete 我的猜测是,你需要这种形式,你不希望用户交换电话联系方式。也许他们必须支付订阅费才能(通过电话)联系该服务的其他用户。有些用户有时会尝试将这些信息以奇怪的格式(数字作为单词)放到消息中。这个假设正确吗 如果是这样,那么我不确定正则表达式是

我有一个与电话号码匹配的regexp

(((\d).{0,5}){7}) 
但现在我需要一个常规表达式,它匹配用字母字符书写的电话号码,如下所示:

nueve nueve tres uno cinco cero tres cinco cinco siete

我的猜测是,你需要这种形式,你不希望用户交换电话联系方式。也许他们必须支付订阅费才能(通过电话)联系该服务的其他用户。有些用户有时会尝试将这些信息以奇怪的格式(数字作为单词)放到消息中。这个假设正确吗

如果是这样,那么我不确定正则表达式是否是解决这个问题的最佳方案。您必须执行以下操作:

\b(zero|one|two|three|four|five|six|seven|eight|nine)\b
然后可以说,如果匹配,则消息无效最大的问题是,用户可以简单地用不同的语言输入数字,或者使用拼写错误但容易理解的单词,或者在每个字母之间添加空格(或任何类型的标点符号)(有很多方法)

你最好做一些模糊匹配,返回一个等级值(Levenshtein距离),表示用户在消息中输入电话号码的可能性。然后,您将获得该排名的threashold,如果超过该值,将导致其验证失败。不过,这比基本正则表达式复杂得多。以下是一些链接,您可以查看更多信息:


只是一点建议-如果你愿意帮助他们,他们会更愿意帮助你-你会问很多问题,但没有选定的答案,人们可能会被阻止花时间回答而很少有机会得到回报