Java筆記:正則表達式
阿新 • • 發佈:2018-03-10
表示 ngs 根據 分享 log 末尾 world star jet
一、基礎知識
正則表達式是描述字符序列的一串字符。這種通用的描述被稱為模式,可用於在其他字符序列中查找匹配。Java的正則表達式由Pattern和Matcher組成,Pattern用於定義正則表達式,Matcher用於在其他序列中匹配模式。
二、語法
正則表達式由常規字符、字符類、通配符及量詞構成。
常規字符根據自身進行匹配。
字符類是一組字符,通過在方括號之間放置字符可指定字符類。
通配符可以匹配任意字符。
量詞決定表達式將被匹配的次數。
^ | 匹配輸入字符串的開始位置 |
$ | 匹配輸入字符串的結束位置 |
* | 匹配前面字符或子表達式零次或多次 |
+ | 匹配前面字符或子表達式一次或多次 |
? | 匹配前面字符或子表達式零次或一次 |
{n} | 匹配前面的字符或子表達式n次 |
{n,} | 匹配前面的字符或子表達式至少n次 |
{n,m} | 匹配前面的字符或子表達式至少n次、至多m次 |
? | 在限定符之後表示匹配模式是非貪心的,匹配盡可能短的字符串。默認的貪心模式匹配盡可能長的字符串。 |
A|B | 匹配A或B |
[ABC] | 匹配ABC中的任意字符 |
[^ABC] | 匹配非ABC的任意字符 |
[A-Z] | 匹配A-Z內的任意字符 |
三、示例
import java.util.regex.Matcher; import java.util.regex.Pattern;View Codeclass Solution { public static void main(String[] args) { Pattern pattern = Pattern.compile("[a-z]+"); Matcher matcher = pattern.matcher("Hello World"); System.out.println(matcher.matches());//不匹配子串 matcher.reset(); while (matcher.find()) {//匹配子串 System.out.println(matcher.start());//獲取當前匹配的開頭引索 System.out.println(matcher.end());//獲取當前匹配的末尾引索 System.out.println(matcher.group());//獲取最後一個匹配的字符串 } String str = matcher.replaceAll(""); System.out.println(str); } }
分割字符串。
import java.util.Arrays; import java.util.regex.Pattern; class Solution { public static void main(String[] args) { Pattern pattern = Pattern.compile("[,.!]"); String[] strings = pattern.split("JetBrains!IntelliJ,IDEA."); System.out.println(Arrays.toString(strings)); } }View Code
Java筆記:正則表達式