簡體   English   中英

(java.util.regex.Pattern的問題)檢查字符串的數字和字母

[英](Problems with java.util.regex.Pattern) checking string for digits and letters

我有一個任務來檢查新字符串(登錄)是否符合某些規則這些是規則:

1. It has to be 1-20 symbols length
2. It may consist of digits, letters (a-z,A-Z), dots and "-"
3. The first symbol has to be a letter (a-z,A-Z)
4. It has to end with a letter or a digit

所以我想到了使用java.util.regex.Pattern,我遇到了一些問題。 多數民眾贊成我所擁有的:

    String login = "a.bc-.52";
    Pattern p1 = Pattern.compile("([a-zA-Z]{1}[a-zA-Z\\d.-]{0,18}[a-zA-Z\\d])");
    Matcher m1 = p1.matcher(login);
    boolean b = m1.matches();

我無法檢查字符串是以字母還是以diggit結尾。 我想我可以拆分字符串並用不同的圖案檢查它的部分,但有些東西告訴我,它可以更容易地完成。

如果這是一個愚蠢的問題或者我犯了錯誤,我很抱歉。 也許有更簡單的方法,請告訴我。 謝謝

^[a-zA-Z]{1}[a-zA-Z\\d.-]{0,18}[a-zA-Z\\d]$

^ < - 確保字符串以字母開頭

$ < - 確保字符串以數字字母結尾

你要找的是美元符號。 就那么簡單:

t $ - >以t結尾

相反的是^

^ a - 以a開頭

因此,在您的情況下,最后添加美元符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM