正则笔记
import re
aa=’+4’
#匹配尖括號里面的內(nèi)容
reExp= re.compile(’<(.*?)>+’)
b = reExp.findall(aa)
b = reExp.sub(’’,aa)
print(b)
import re
line = “Cats are smarter than dogs”
matchObj = re.match( r’(.) are (.?) .*’, line, re.M|re.I)
if matchObj:
print( matchObj.group())
print(matchObj.group(1))
print(matchObj.group(2))
else:
print(“No match!!”)
#match 一個分組只匹配一個分組 寫一個分組就只匹配一個分組 而且是依順序的
#而findall會匹配所有的,并以列表形式給出結(jié)果
解析:
首先,這是一個字符串,前面的一個 r 表示字符串為非轉(zhuǎn)義的原始字符串,讓編譯器忽略反斜杠,也就是忽略轉(zhuǎn)義字符。但是這個字符串里沒有反斜杠,所以這個 r 可有可無。
(.) 第一個匹配分組,. 代表匹配除換行符之外的所有字符。
(.?) 第二個匹配分組,.? 后面多個問號,代表非貪婪模式,也就是說只匹配符合條件的最少字符(
貪婪模式不匹配所有 換行符的時候就結(jié)束了)
后面的一個 .* 沒有括號包圍,所以不是分組,匹配效果和第一個一樣,但是不計入匹配結(jié)果中
————————————————
版權(quán)聲明:本文為CSDN博主「kyle1314608」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/kyle1314608/article/details/100595174
正則表達式:\(PE等級,(.*?)\)\(顏色,(.*?)\)\(生產(chǎn)標(biāo)準(zhǔn)\(國準(zhǔn)\),(.*?)\)\(標(biāo)準(zhǔn)尺寸比,(.*?)\)
\(?和?\)?是轉(zhuǎn)義括號,匹配原文中本來的小括號
(.*?)?是每一個分組匹配的內(nèi)容
匹配結(jié)果:
第一組:PE100??
第二組:黑
第三組:GB/T?15558.1
第四組:SDR11
Java代碼測試?yán)?#xff1a;
| 123456789101112131415161718 | import?java.util.regex.Matcher;import?java.util.regex.Pattern;public?class?Test?{????public?static?void?main(String[]?args)?{????????String?text?=?"(PE等級,PE100)(顏色,黑)(生產(chǎn)標(biāo)準(zhǔn)(國準(zhǔn)),GB/T?15558.1)(標(biāo)準(zhǔn)尺寸比,SDR11)";????????Pattern?pattern?=?Pattern.compile("\\(PE等級,(.*?)\\)\\(顏色,(.*?)\\)\\(生產(chǎn)標(biāo)準(zhǔn)\\(國準(zhǔn)\\),(.*?)\\)\\(標(biāo)準(zhǔn)尺寸比,(.*?)\\)");????????Matcher?matcher?=?pattern.matcher(text);????????if?(matcher.find())?{????????????System.out.println(matcher.group(1));??//PE等級????????????System.out.println(matcher.group(2));??//顏色????????????System.out.println(matcher.group(3));??//生產(chǎn)標(biāo)準(zhǔn)????????????System.out.println(matcher.group(4));??//標(biāo)準(zhǔn)尺寸比????????}????}} |
總結(jié)