常用元字符
代碼 | 說明 |
---|---|
. | 匹配除換行符以外的任意字符 |
\w | 匹配字母或數字或下劃線 |
\s | 匹配任意的空白符 |
\d | 匹配數字 |
\b | 匹配單詞的開始或結束 |
^ | 匹配字符串的開始 |
$ | 匹配字符串的結束 |
常用限定符
代碼/語法 | 說明 |
---|---|
* | 重複零次或更多次 |
+ | 重複一次或更多次 |
? | 重複零次或一次 |
{n} | 重複n次 |
{n,} | 重複n次或更多次 |
{n,m} | 重複n到m次 |
以此舉個例子如郵箱:[email protected]
正則表達式爲:^[A-Za-z0-9-._]+@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,6})$
創建過程:
1. 開頭和結尾:^$;
2. 加入@:^@$;
3. @前的內容匹配:[A-Za-z0-9-._] 大小寫字母,數字,".",下劃線 隨機出現;"+" 號表示當前規則中的字符可以重複;
4. @後的內容受頂級域名的限制,按點號分割後的規則略有不同:(\.[A-Za-z]{2,6}) 必須是字母出現,比如.com,.cn等
舉個Java案例:
郵箱匹配:
private static final String EMAIL_PATTERN = "^[A-Za-z0-9-._]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
匹配寫法:
Pattern p = Pattern.compile("正則表達式");
Matcher m = p.matcher("傳入字符串");
boolean b = m.matches();