網(wǎng)站首頁 編程語言 正文
前前一期說了正則表達(dá)式校驗(yàn)金額最多保留兩位小數(shù)(感興趣的小伙伴可以過去看看)
其中提到了^和$,當(dāng)時只是簡單說明了這個表達(dá)式,今天來詳細(xì)說明一下使用方法
先說明一下兩個表達(dá)式含義:
- ^匹配開始位置
- $匹配結(jié)束位置
來看個簡單的demo
import java.util.regex.Pattern;
/**
* @author yanghao
* @version PatternTest.java, v 0.1 2019-03-30 09:41
*/
public class PatternTest {
/**
* 待匹配字符串
*/
private static final String tempStr = "A.B.C.D";
/**
* 匹配開始位置表達(dá)式
*/
private static final Pattern PATTERN_START = Pattern.compile("^A");
/**
* 匹配結(jié)束位置表達(dá)式
*/
private static final Pattern PATTERN_END = Pattern.compile("D$");
public static void main(String[] args){
System.out.println("PATTERN_START === " + PATTERN_START.matcher(tempStr).replaceAll("demo"));
System.out.println("PATTERN_END === " + PATTERN_END.matcher(tempStr).replaceAll("demo"));
}
}
運(yùn)行結(jié)果如下:
PATTERN_START === demo.B.C.D
PATTERN_END === A.B.C.demo
從運(yùn)行結(jié)果可以看出,待匹配字符串的開始和結(jié)尾已經(jīng)被替換掉了
我們在來看下,非開頭和結(jié)尾的情況
編寫demo如下:
import java.util.regex.Pattern;
/**
* @author yanghao
* @version PatternTest.java, v 0.1 2019-03-30 09:41
*/
public class PatternTest {
/**
* 待匹配字符串
*/
private static final String tempStr = "A.B.C.D";
/**
* 開始+中間字符串表達(dá)式
*/
private static final Pattern PATTERN_START_MIDDLE = Pattern.compile("^B");
/**
* 中間字符串表達(dá)式
*/
private static final Pattern PATTERN_MIDDLE = Pattern.compile("B");
public static void main(String[] args){
System.out.println("PATTERN_START_MIDDLE === " + PATTERN_START_MIDDLE.matcher(tempStr).replaceAll("demo"));
System.out.println("PATTERN_MIDDLE === " + PATTERN_MIDDLE.matcher(tempStr).replaceAll("demo"));
}
}
運(yùn)行結(jié)果如下:
PATTERN_START_MIDDLE === A.B.C.D
PATTERN_MIDDLE === A.demo.C.D
此測試結(jié)果可以看出,如果加了^表達(dá)式,表示一定要以此為開始才能匹配到,那么同理,$表達(dá)式一定要以此為結(jié)尾才能匹配到,小伙伴們可以自己去寫個demo測試一下?
附:在正則表達(dá)式中^ 和 $ 同時出現(xiàn)的含義
當(dāng) ^ 和 $ 同時出現(xiàn)時,表示只能匹配 ^ 和 $ 之間的內(nèi)容,例:
/^abc$/ ?只能匹配'abc'
容易被理解為abcabc這種形式的也是可以的,但其實(shí)不行。
準(zhǔn)確來說這么理解:
必須以a開頭,必須以c結(jié)束,a和c的中間只寫了b,所以只能匹配’abc’。
‘a(chǎn)bcabc’的開頭a和結(jié)尾c中間是’bcab’,與’b’沒有任何關(guān)聯(lián),所以不對。
/^a.c$/ ?可以匹配a加任意單個字符加c,比如abc,aec,acc,a2c等
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_43968234/article/details/88910204
相關(guān)推薦
- 2021-04-07 Websocket免費(fèi)在線測試請求工具
- 2022-12-13 Python操作Excel數(shù)據(jù)的封裝函數(shù)分享_python
- 2022-08-01 C語言深入探索遞歸的特點(diǎn)_C 語言
- 2022-09-19 .Net?Core使用layui多文件上傳_實(shí)用技巧
- 2022-10-22 python?中的?super詳解_python
- 2022-11-30 深入了解Golang?interface{}的底層原理實(shí)現(xiàn)_Golang
- 2022-12-27 Qt實(shí)現(xiàn)UDP通信的示例代碼_C 語言
- 2022-11-30 Golang底層原理解析String使用實(shí)例_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支