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

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

本文分享關於正則表示式中最常用的關鍵字[^]、^及$的用法

工具/原料

IntelliJ IDEA

Java

Regular expressions

方法/步驟

[^]:這個關鍵字匹配 圈定一個範圍,只要不是這個範圍內的字元都可以哦

^:這個關鍵字匹配 以哪個字串開頭

$:這個關鍵字匹配 以哪個字串結束

先來看看測試的腳手架程式碼:

Code:

package chapter4;import java.util.Arrays;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexStudyDemo { public static void main(String[] args) { String regexStr = "Hello[^\\d]!"; List input = Arrays.asList("Hello7!", "Hello漢!", "Hello !", "Hello !", "Hello\b!", "Hello\t!", "Hello\"!" , "Hello\r!", "Hello\f!", "Hello\n!", "Hello_!", "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(String.format("%s is not match %s!", regexStr, input)); result = false; } return result; }}

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

簡單分析一下上面的正則表示式,

“[^\\d]”就是\D哦

所以,除"Hello7!"不匹配外,其它的字串都匹配

執行下看看結果

Output:

Hello[^\d]! is not match Hello7!!

false

與預期一致

Ok

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

修改一下正則表示式

匹配一下的字串"Hello7!" 匹配剛才

Code:

String regexStr = "Hello[^\\D]!";

List input = Arrays.asList("Hello7!");

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

執行下看看結果

Output:

true

與預期一致

OK

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

現在來看看^的用法

更改下程式碼

Code:

String regexStr = "^[\\d]Hello!";

List input = Arrays.asList("7Hello!","xHello!");

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

解析一下程式碼:

"^[\\d]Hello!":表示必須以數字打頭,後面是“Hello!”的字串

因此不能匹配"xHello!"

執行下看看結果

^[\d]Hello! is not match xHello!!

false

與預期一致

OK

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

最後來看看$的用法

更改下程式碼

Code:

String regexStr = "Hello![\\d]$";

List input = Arrays.asList("Hello!7","Hello!x");

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

解析一下程式碼:

"^[\\d]Hello!":表示必須數字結尾,前面是“Hello!”的字串

因此不能匹配"Hello!x"

執行下看看結果

Hello![\d]$ is not match Hello!x!

false

與預期一致

OK

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

相關問題答案