正則表示式30分鐘入門系列之2?

正則表示式也是一種語言,在解析字串領域獨領風騷。

本文分享關於正則表示式中兩個最常用的關鍵字\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 input = Arrays.asList("Hello了!", "Hello3!", "HelloY!", "Hello_!");

System.out.println(isMatch(input, regexStr));

} private static boolean isMatch(List inputs, String regexStr) {

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;

}

}

正則表示式30分鐘入門系列之2

執行下看看結果:

Hello了! is not match!

false

java程式碼就不再介紹了。前面的一篇有

說下“\\w”,不是說好 的"\w",怎麼你的程式碼中變成這兩個反斜槓了

先息怒:

\在Java中是保留字元,是轉義用的。轉義轉義,就是把以前的意思改變了

\w中前面就是一個普通的反斜槓,在java中要表達這個意思,就要輸入兩個\\,其它第一斜槓,是java中的轉義符,第二個斜槓是要使用的字元,就是\w前面的這個斜槓了

正則表示式30分鐘入門系列之2

不少眼尖的tx已經發現了,上面的程式碼執行時,返回false

是因為

“Hello\\w!”不能匹配“Hello了!”

即\w不能匹配漢字

童話裡都是騙人的,不是說好的,可以匹配漢字的嗎。。。

正則表示式30分鐘入門系列之2

下劃線和中劃線比較像,試試

更改下程式碼

Code:

List input = Arrays.asList("Hello -!", "Hello3!", "HelloY!", "Hello_!");

正則表示式30分鐘入門系列之2

執行下看看是否匹配

Output:

Hello-! is not match!

false

與預期一致。

OK

正則表示式30分鐘入門系列之2

試試兩個字元和空格,看看行不行

更改程式碼

Code:

List input = Arrays.asList("Hello33!", "Hello !", "HelloY!", "Hello_!");

正則表示式30分鐘入門系列之2

執行下看看結果是不是不匹配

Output:

Hello33! is not match!

Hello ! is not match!

false

與預期一致

OK

正則表示式30分鐘入門系列之2

相關問題答案