我想了解一下使用string patterns
。
对于电子邮件我有
^[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-z]+
应该没问题,还是要做得更好? 我不想要任何复杂的东西,只是基本的"友好的可读性#34;。 有没有办法如何通过表达式限制2-3个字符的电子邮件域?
对于网址,我开始使用类似的内容
^(http|https)://[a-zA-Z0-9]+\\.[a-z]+(/[a-zA-Z0-9-_]+)+\\.[a-z_-]+
如何扩展网址参数的模式?喜欢:
http://hostname.domain/uriFrag1/uriFrag2/someFilename.fileExt?param1=val1¶m2=val2
如何简单地为?param1=val1¶m2=val2
制作模式?
可以有参数,但它们不是强制性的。
答案 0 :(得分:3)
^[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]*))*
答案 1 :(得分:0)
有很多方法可以做到这一点,我发现split
是最简单的方法。由于所有参数都在问号后面传递,您可以简单地:
String params = url.split("\\?")[1];
强烈建议在尝试访问元素之前检查结果数组的边界。