正則表示式也是一種語言,在解析字串領域獨領風騷。
本文分享關於正則表示式中兩個最常用的關鍵字\w用法
工具/原料
IntelliJ IDEA
Java
Regular expressions
方法/步驟
\w:這個關鍵字代表 一個字母、數字或下劃線
先來看看測試的腳手架程式碼:
Code:
package chapter4;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by MyWorld on 2016/3/23.
*/
public class RegexStudyDemo {
public static void main(String[] args) {
String regexStr = "Hello\\w!";
List
System.out.println(isMatch(input, regexStr));
} private static boolean isMatch(List
boolean result = true;
for (String input : inputs) {
Pattern pattern = Pattern.compile(regexStr);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
continue;
}
System.out.println(input + " is not match!");
result = false;
}
return result;
}
}
執行下看看結果:
Hello了! is not match!
false
java程式碼就不再介紹了。前面的一篇有
說下“\\w”,不是說好 的"\w",怎麼你的程式碼中變成這兩個反斜槓了
先息怒:
\在Java中是保留字元,是轉義用的。轉義轉義,就是把以前的意思改變了
\w中前面就是一個普通的反斜槓,在java中要表達這個意思,就要輸入兩個\\,其它第一斜槓,是java中的轉義符,第二個斜槓是要使用的字元,就是\w前面的這個斜槓了
不少眼尖的tx已經發現了,上面的程式碼執行時,返回false
是因為
“Hello\\w!”不能匹配“Hello了!”
即\w不能匹配漢字
童話裡都是騙人的,不是說好的,可以匹配漢字的嗎。。。
下劃線和中劃線比較像,試試
更改下程式碼
Code:
List
執行下看看是否匹配
Output:
Hello-! is not match!
false
與預期一致。
OK
試試兩個字元和空格,看看行不行
更改程式碼
Code:
List
執行下看看結果是不是不匹配
Output:
Hello33! is not match!
Hello ! is not match!
false
與預期一致
OK