網(wǎng)站首頁 編程語言 正文
??????? 正則表達(dá)式可以匹配某些特定的數(shù)據(jù),如果你想要從龐大的文字信息中提取出一小段你需要的數(shù)據(jù),那么正則表達(dá)式或許能幫到你。
字符組
[ ]允許匹配一組可能出現(xiàn)的字符。
?可以發(fā)現(xiàn)[Pp]
既可以匹配大寫的P
也可以匹配小寫的p。
區(qū)間
1、要匹配任意數(shù)字可以使用[0-9]。
2、如果想要匹配所有小寫字母,可以寫成[a-z]。
3、想要匹配所有大寫字母可以寫成[A-Z]。
匹配特殊字符
“[]”在正則表達(dá)式命令中具有意義,如果我們想要匹配符號(hào)“[]”則需要進(jìn)行轉(zhuǎn)義即 \[] ,其他符號(hào)例如 '()' '\' 等均可實(shí)現(xiàn),其中小括號(hào)若需要 '\(\)'轉(zhuǎn)義兩次,大括號(hào)不用轉(zhuǎn)義
快捷方式
^ 在[]內(nèi)表示取反,在外表示匹配行首,寫在匹配字符前面
$ 匹配行尾,寫在匹配字符后面。
\d 數(shù)字字符,等價(jià)于[0-9]。
\w 單詞字符(字母,數(shù)字及下劃線),等價(jià)于[0-9a-zA-Z_]。
\s 空白符(tab和空格)。
\b 匹配單詞邊界。
\D\W\S\B與\d\w\s\b匹配相反。
'.'匹配除 “\n” 之外的任何單個(gè)字符。要匹配包括 ‘\n’(回車產(chǎn)生的換行)在內(nèi)的任何字符,請(qǐng)使用 ‘[.\n]’進(jìn)行匹配
?匹配前一個(gè)字符或字符組出現(xiàn)零次或一次,另一個(gè)作用是將貪婪模式修改為非貪婪模式。
+ 匹配前一個(gè)字符或字符組一次或多次。
* 匹配前一個(gè)字符或字符組零次或多次。
匹配多個(gè)區(qū)間
在一個(gè)字符組后加上{N} 就可以表示在它之前的字符組出現(xiàn)N次。
{M,N},M是下界而N是上界。例如\d{3,4} 既可以匹配3個(gè)數(shù)字也可以匹配4個(gè)數(shù)字,不過當(dāng)有4個(gè)數(shù)字的時(shí)候,優(yōu)先匹配的是4個(gè)數(shù)字,這是因?yàn)檎齽t表達(dá)式默認(rèn)是貪婪模式,即盡可能的匹配更多字符,而要使用非貪婪模式,我們要在表達(dá)式后面加上 ?號(hào)。
分組
() 分組。使用分組時(shí),除了獲得整個(gè)匹配。還能夠在匹配中選擇每一個(gè)分組。
| 或者。使用分組的同時(shí)還可以是用或者條件,與“or”相同。
(?:表達(dá)式) 有時(shí)候,我們并不需要捕獲某個(gè)分組的內(nèi)容,但是又想使用分組的特性。
\N 表示可以引用與編號(hào)為N的分組相同的格式,且匹配的數(shù)據(jù)最終結(jié)果也與N相同。
先行 / 后行斷言
(?=表達(dá)式) 正向先行斷言。指在某個(gè)位置向右看,表示所在位置右側(cè)必須能匹配表達(dá)式。
(?!表達(dá)式) 反向先行斷言。指在某個(gè)位置向右看,表示所在位置右邊不能匹配表達(dá)式。
(?<=表達(dá)式) 正向后行斷言。指在某個(gè)位置向左看,表示所在位置左側(cè)必須能匹配表達(dá)式。
(?<!表達(dá)式) 反向后行斷言。指在某個(gè)位置向左看,表示所在位置左側(cè)不能匹配表達(dá)式。
例子:
提取下列數(shù)據(jù)中所有人的生日,使用兩個(gè)分組,第一個(gè)分組提取“月”,第二個(gè)分組提取“日”。
?請(qǐng)編寫正則表達(dá)式匹配所有的小數(shù):
?匹配8-16位密碼包含大小寫字母,數(shù)字,部分字符
?
原文鏈接:https://blog.csdn.net/weixin_52159400/article/details/125869987
相關(guān)推薦
- 2022-07-09 Redis中Bitmap的使用示例_Redis
- 2023-07-16 unipp 小程序 退出登錄
- 2022-07-25 軟件測(cè)試業(yè)務(wù)梳理的實(shí)用技巧_應(yīng)用技巧
- 2023-07-27 原型和原型鏈條、ES6、前后端交互Ajax
- 2022-04-12 Python?設(shè)計(jì)模式行為型訪問者模式_python
- 2022-11-01 python?類對(duì)象的析構(gòu)釋放代碼演示_python
- 2022-06-14 go語言中的udp協(xié)議及TCP通訊實(shí)現(xiàn)示例_Golang
- 2022-08-22 C++實(shí)現(xiàn)字符串切割的兩種方法_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- 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錯(cuò)誤: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)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支