多年来,我慢慢开发了一个正则表达式,可以正确验证MOST电子邮件地址,假设他们不使用IP地址作为服务器部分.
我在几个PHP程序中使用它,它大部分时间都可以工作.但是,我不时会遇到使用它的网站遇到问题的人,我最终不得不进行一些调整(最近我意识到我不允许使用4字符TLD).
验证电子邮件的最佳正则表达式是什么?
我已经看到了几个使用函数的解决方案,这些函数使用了几个较短的表达式,但我宁愿在一个简单的函数中使用一个长复杂表达式,而不是在一个更复杂的函数中使用几个短表达式.
我最近在某个地方读过写一个正则表达式来匹配一个电子邮件地址,考虑到标准的所有变化和可能性是非常困难的,并且比最初假设的要复杂得多.
任何人都可以提供一些见解,为什么会这样?
是否有任何已知且经过验证的regexp实际完成这一点?
使用正则表达式匹配电子邮件地址有哪些好的替代方法?
我需要验证输入:有效的变量是数字或空字符串.相应的正则表达式是什么?
String pattern = "\d+|<what shoudl be here?>";
Run Code Online (Sandbox Code Playgroud)
UPD:请不要建议"\ d*",我只是好奇如何在regexp中告诉"空字符串".
我需要正则表达式以不允许字段中仅包含空格(用户不应在字段中仅输入空格),但可以允许完全空白的字段,并且还可以允许字符串之间使用空格。
例如,如果我输入诸如“ This is a test”或“ testing”之类的字符串,则正则表达式应通过验证。另外,如果我在该字段中未输入任何内容,则应通过验证。如果我仅输入空格,它将失败。
我尝试了以下提到的方法,但是它们失败了。
1)^ [^-\ s] [a-zA-Z0-9_ \ s-] + $-不允许我输入介于两者之间的空格
2)^ [^-\ s] [\ w \ s-] + $-不允许我输入字符串