【发布时间】:2012-03-18 03:22:27
【问题描述】:
我希望提高我在 Ruby 编程中使用的正则表达式技能。
我想出了下面的电子邮件匹配器。
可以改进吗?它适用于所有电子邮件地址吗?
mailto: 可以吗?
/(mailto:)*\w+@\w+.[A-z]+.[A-z]{2,4}/
它匹配像
这样的地址bob@test.com
bob_smith@test.com
bob_smith@prefix.test.com
abc@xyz.co.uk
mailto:fred@test.com
【问题讨论】:
-
它不适用于特殊或非拉丁字符,例如 nøx@nåx.dk
-
您确实意识到
[mailto:]*表示“集合中的零个或多个字符 {:,a,i,l,m,o, @ 987654331@}"? -
好点 ruakh,这就是我发布这个的原因。你知道如何改进吗?
-
你的意图是什么?要查看电子邮件是否仅与您的模式匹配?或者,是看它是否是一个有效的地址?第二个问题要困难得多,因为电子邮件地址可能与您的模式匹配,但仍然不是真实的。最简单的答案是尝试向该地址发送一条消息,要求另一端的人做出回应。这样做也可以回答您的问题,以及您可能希望在后续步骤中回答的其他问题。
标签: ruby regex pattern-matching email-validation