1. 程式人生 > >java正則表示式中出現空格

java正則表示式中出現空格

在正則表示式中是可以使用空格的,儘管空格可以用 \s表示。

在java正則中,我初次遇到帶有空格的正則時可謂是一臉懵B,當時就提出疑問,java中的空格不是可以用\s來表示嗎?

隨後我測試了一下,程式碼如下,一目瞭然。

public class TheBlankSpace {
	public static void main(String[] args) {
		//帶有空格的字串
		String str="welcome to 5G time";
		//為了測試空格,就直接用全\w了,當str中每個單詞之間是一個空格時。
		String pattern = "\\w+ \\w+ \\w+ \\w+";//這的空格也是一個。
		Pattern p=Pattern.compile(pattern);
		Matcher m= p.matcher(str);
		if(m.find()==true) {
			boolean string =m.matches();
			System.out.println(string);//true
		}
	}
}
//String pattern = "\\w+ \\w+ \\w+ \\w+";和String pattern = "\\w+\\s\\w+ \\w+ \\w+";等效
//其中道道一看便知

當我把正則中的空格換成大於一個時

public class TheBlankSpace {
	public static void main(String[] args) {
		//帶有空格的字串
		String str="welcome to 5G time";
		//為了測試空格,就直接用全\w了,當str中每個單詞之間是一個空格時。
		String pattern = "\\w+        \\w+ \\w+ \\w+";//這的空格換成大於一個時。
		Pattern p=Pattern.compile(pattern);
		Matcher m= p.matcher(str);
		if(m.find()==true) {
			boolean string =m.matches();
			System.out.println(string);//false
		}
	}
}

 輸出的結果變成了false。

也就是說:在正則表示式中是可以出現空格的,前提是正則表示式中的空格要與所匹配的字串中的空格保持相同的數量,這樣顯然是很麻煩的,所以還是建議使用\s來表示空格比較方便。(或許這個空格還有另外更深層的含意,本人初學,後續再細細研究,目前就知道這個)