??????
目錄
一、基本的正則表達(dá)式語(yǔ)法
1.1 字符類
1.2?單個(gè)字符的特殊表示
1.3 量詞表示
?1.4?邊界匹配
1.5?分組與捕獲
?二 、java中的使用
??在Java中使用正則表達(dá)式進(jìn)行字符串匹配可以說(shuō)是一個(gè)很重要的技能,尤其對(duì)于需要進(jìn)行文本處理或者字符替換的程序來(lái)說(shuō),更是必不可少的技術(shù)手段。
一、基本的正則表達(dá)式語(yǔ)法
1.1 字符類
字符類指的是可以匹配單個(gè)字符的內(nèi)容,在正則表達(dá)式中通常用中括號(hào)“[]”表示,例如
[abc] //匹配a或b或c
[a-zA-Z] //匹配任意大小寫(xiě)字母
1.2?單個(gè)字符的特殊表示
?在正則表達(dá)式中,一些字符具有特殊含義,例如“.”表示任意一個(gè)字符,“\d”表示任意一個(gè)數(shù)字等,常見(jiàn)的特殊表示符號(hào)包括:
\d //匹配數(shù)字
\D //匹配非數(shù)字
\w //匹配字母、數(shù)字或下劃線
\W //匹配非字母、數(shù)字或下劃線
\s //匹配空白字符(空格、制表符、換行符等)
\S //匹配非空白字符
. //匹配任意字符
1.3 量詞表示
量詞指的是可以匹配多個(gè)字符的內(nèi)容,在正則表達(dá)式中通常用花括號(hào)“{}”表示,例如:
a{2} //匹配兩個(gè)連續(xù)的a
a{3,5} //匹配三到五個(gè)連續(xù)的a
?常見(jiàn)的量詞包括:
* //匹配0到多次
+ //匹配1到多次
? //匹配0或1次
{n} //匹配n次
{n,m}//匹配n到m次
{n,} //匹配n到多次
?1.4?邊界匹配
邊界匹配指的是匹配字符串開(kāi)始或結(jié)束位置的內(nèi)容,在正則表達(dá)式中通常用圓括號(hào)“()”表示,例如:
^abc //匹配以abc開(kāi)頭的字符串
abc$ //匹配以abc結(jié)尾的字符串
1.5?分組與捕獲
在正則表達(dá)式中,可以使用圓括號(hào)“()”來(lái)分組,還可以使用反斜杠符號(hào)“\”來(lái)捕獲匹配的內(nèi)容,例如:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-861291.html
(a)(b) //分組匹配ab
(\d{4})-(\d{2}) //捕獲匹配日期格式(例如:2023-06)
?二 、java中的使用
我們直接通過(guò)幾個(gè)簡(jiǎn)單的列子來(lái)看下如何使用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861291.html
package com.cjian.pattern;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Author: cjian
* @Date: 2024/4/23 19:42
* @Des:
*/
public class Demo {
public static void main(String[] args) {
test2();
}
// 解析kv
private static void test2(){
Pattern pattern = Pattern.compile("(\\S+)=(\\S+)");
Matcher matcher = pattern.matcher("k1=v1 k2=v2 k3=3 k4=five");
while(matcher.find()){
// group()方法可以返回與前一次匹配結(jié)果相同的字符串
String key = matcher.group(1);
String value = matcher.group(2);
System.out.println(key+"->"+value);
}
}
// 解析日期
private static void test1() {
String regex = "\\d{4}-\\d{2}-\\d{2}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("2024-04-23 20:16:30 ");
if(matcher.find()){
// group()方法可以返回與前一次匹配結(jié)果相同的字符串
String matchedStr = matcher.group();
System.out.println(matchedStr);
}
}
}
到了這里,關(guān)于正則表達(dá)式的常見(jiàn)語(yǔ)法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!