[英]String pattern, regular expression
我想学习一些使用string patterns
东西。
对于我有这封电子邮件
^[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-z]+
它应该没问题,还是要做得更好? 我不想要任何复杂的东西,只是基本的“友好可读”。 有没有办法如何通过表达式限制2-3个字符的电子邮件域?
对于URL,我开始使用类似的东西
^(http|https)://[a-zA-Z0-9]+\\.[a-z]+(/[a-zA-Z0-9-_]+)+\\.[a-z_-]+
如何扩展URL参数的模式? 喜欢:
http://hostname.domain/uriFrag1/uriFrag2/someFilename.fileExt?param1=val1¶m2=val2
任何想法如何简单地制作模式?param1=val1¶m2=val2
?
可以有参数,但它们不是强制性的。
^[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-z]+
关于这一点的一些事情。 您可能还应该添加。 甚至可能是+,因为两者在电子邮件中很常见(例如Gmail允许两者)。 其次,您可以使用{from-to}限制字符数。 所以:
^[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-z]{1,3}
但是,您可能要考虑不这样做,因为刚出售的域名较长。 人们可能会出现.cloud或.email电子邮件,您不会想要将其拒之门外。
至于网址:
?param1 = val1这很容易匹配
(\\?[a-z]*=[a-z]*)*
但是,如果您确实想要获取它们,则可能需要使用某些捕获组。
(\\?([a-z]*)=([a-z]*))*
有很多方法可以做到这一点,我发现最简单的方法就是split
。 由于所有参数都在问号后面传递,您可以简单地:
String params = url.split("\\?")[1];
强烈建议在尝试访问元素之前检查结果数组的边界。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.