1. 程式人生 > >正則表示式用法

正則表示式用法

1、範圍的字元類:


[abc],範圍中的一個,a或b或c
 
[^abc],取反,除了abc中的一個


[a-z],小寫字母中的任何一個


[a-zA-Z],字母中的任何一個


[a-c[m-q]],並集,abcmnopq中的任何一個


[a-c && [b-f]],交集,bc中任何一個


[a-z && [bcd]],交集。bcd中的一個



2、預定義字元類


.  :任何字元


\d :數字,[0-9]


\D :非數字,[^0-9]


\s :空白,空格 回車,換行 \t


\S :非空白,[^\s]


\w :單詞字元[a-zA-Z0-9_]


\W :非單詞字元,[^\w]



3、量詞:指定匹配的次數


x?,零次或1次


x*,零次或多次


x+,一次或多次


x{n},n次


x{n,},至少n次


x{n,m},至少n次,不多於m次



|,或者


\\.,表示.


(),分組


(.)\\1+  :  \1引用第一組的內容


$1  :外部引用第一組的內容


\b:單詞的邊界

package day_160810_regex;

public class Demo01 {
	public static void main(String[] args) {
	//[abc],範圍中的一個,a或b或c
		String regex="[abc]";
		String s="a";
		System.out.println(s.matches(regex));//true
	//舉例:qq帳號:5-11位數字
		regex="[1-9]\\d{4,10}";
		s="22243";
		System.out.println(s.matches(regex));//true
	//電話號碼的正則法則
		regex="1[345789]\\d{9}";//表示第一位是1第二位在345789中選擇一位剩下9位數字隨意
		s="18753360900";
		System.out.println(s.matches(regex));//true
	//身份證正則法則
		regex="[1-9]\\d{16}[1-9X]";
		s="21041155568841542X";
		System.out.println(s.matches(regex));//true 
	//郵箱正則法則
		regex="\\
[email protected]
\\w+\\.(com|net|org)"; s="[email protected]"; System.out.println(s.matches(regex)); } }