首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于尴尬邮件和电话号码的c#正则表达式

用于尴尬邮件和电话号码的c#正则表达式
EN

Stack Overflow用户
提问于 2014-01-20 07:55:45
回答 1查看 100关注 0票数 0

我使用了以下2种正则表达式,我在这里发现:

  1. 10位电话号码,前后有空格:@"(?<!\d)\d{10}(?!\d)"
  2. 电子邮件:

@@((w-+)+\w-+x(Z1}\w-{2,}))@“+@”(0-10-9{1,2}x 250-5 x 20-4))(0-1? “+ @"(0-10-9{1,2}|250-5|20-4).(0-10-9{1,2}|250-5|20-4)){1}|”+@“(+w-+)+{2,4}”;

该电子邮件regex工作正常和正确的电子邮件地址,

但是我的输入文本实际上并不是正常和正确的,所以我不得不为它介绍另一个特殊性,我也希望它能够解析:

代码语言:javascript
复制
myname@this -email.com *or* myname@this- email.com *or* myname@this - email.com

而10位号码电话regex只提取该号码的最后9位数,电话号码以0开头:

对于nr = 0123456789,我只得到: 123456789,电话号码可以在文本中找到,如:"some text here 0123456789 and some more here"

我还发现,这10位数可以在以下表格中找到:012/3456789

EN

回答 1

Stack Overflow用户

发布于 2014-01-20 08:58:23

  1. 我不认为你需要用前瞻性来匹配你的电话号码。您可以做一些像" (\d[^0-9a-zA-Z]*?){9}\d "这样的操作,来匹配长度正好为10位的数字,在数字之间使用任意类型的垃圾(除了a字母)。不过,小心点,它也会匹配像" 012 à 3456789 "这样的东西。如果单个斜杠是唯一可能的分隔符,则可以使用" (\d/?){9}\d ":无假阳性,但不匹配意外分隔符。
  2. 关于电子邮件的问题,官方的完整判决是相当长的。Gusdor的链接(http://www.regular-expressions.info/email.html)给出了一些上下文和一个简单的上下文,应该与实际使用的每个电子邮件地址相匹配。稍微调整一下以匹配您的情况(this -domain.comthis- domain.org将匹配),您可以使用这样的方法: a-z0-9!#$%&'*+/=?^_`{|}~-+(?:.a-z0-9!#$%&'*+/=?^_`{|}~-+)*@(?:a-z0-9.)+a-z0-9

这里的自定义部分是添加到正确位置的( *?- *)?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21228758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档