[英]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.