正则表达式支持Swift iOS
正则表达式(regex)làdùngcácmẫu模式tìmkiếmchuỗiđểtìmkiếmhoặcthaythếcácchuỗi字符串NSRegularExpression
- Cáctoántửcơbản
–Kiểuboolean或dùng:|
vídụ:cat | dog =>khớpvớikếtquảcó“ cat”hoặc“ dog”
–Kiểugroup(nhóm)dùng:()
vídụ:2(0 | 1)8 => 208,218
–Kiểuđịnhlượng
? :khôngcóhoặc1lünxuấthiệntrướcphầntửđó,vídụ:abc?d => abcd,abd
* :khôngcóhoặcnhiềulnnxuấthiệntrướcphầntửđó,vídụ:abc * d => abd,abcd,abccd,abcccd
+ :khôngcóhoặcnhiềulầnxuấthiệntrướcphầntửđó,vídụ:abc + d => abcd,abccd,abcccd
{n} :sốlầnxuấthiện,vídụ:abc {3} d => abcccd
{min,} :最小化:abc {2,} => abccd,abcccd,abccccd
{min,max} :sốlốnxuấthiệntừmintớimax:abc {1,2,3} => abcd,abccd,abcccd
^ :Bắtđầucủakítự,Vídụ:^ A => An B
$ :Cuốicùngcủakítự,vídụ:$ e =>一个苹果
。 :kítựbấtkì,vídụ:ab => acb,a1b,amb
[] :cáckítựđơntrongngoặcvuông,vídụ:[abc] d =>“ ad”,“ bd”,“ cd”,cóthểviếttt t [ac] d
[^] :ngoạitrừcáckítựtrongngoặcvuông,vídụ:[^ ac] =>“ d”,“ e”
2. Mttsốpatternnhómchuỗi
– [A-Za-z0-9_]
字母数字字符hoặccóthểdùng\ w
– [^A-Za-z0-9_]
非单词字符hoặccóthểdùng\ W
– [A-Za-z]
字母字符hoặccóthểdùng\ a
– [0-9]
位数\ d
– [^0-9]
非数字\ d
– [az]
小写字母hoặccóthểdùng\ l
– [AZ]
大写字母hoặccóthểdùng\ u
– \ b:chuỗitìmkiếmđượcngắtbởi1khoảngtrắnghay kophảikítự
– \ s:sẽkhớpvớikhoảngtrắng,1个标签,1dòngmới
维德:
– abc \ w:sẽkhớpvớiabca,abc_nhưngkovớiabc〜
– \ d \ d?:\ d \ d:吉安5:45,07:50
– abc \ b:sẽkhớpvớiabc def,abc!
– abc \ s:sẽkhớpvới123 abc def
Tìmkiếmchuỗi
Vídụ:通过电子邮件发送模式:
“ \\ b([az])\\。([az] {2,})@([az] +)\\。com \\。vn \\ b ”
—Với \\ b :đầuvàcuốichỉra tachỉlấychuỗiđượcngắtkhôngdínhliềnvớicáckítựkhác
– Partternđượcbiểudiễn:[1kítự]。[Ítnhất2kítự] @ [ítnhất1kítự] .com.vn
DùnghàmNSRegularExpressiontruyềnvào1个terntern,sauđógọihàm 匹配 đểtrảvề [NSTextCheckingResult] ,vàtaduyệtmảngnàylấyra rangerồi得到子串đượctìmthấy。
func matchsRegex(用于正则表达式:字符串,文本中的字符串:)-> [字符串] {
做{
让regex =试试NSRegularExpression (模式:regex,options:.caseInsensitive)
让结果=正则表达式。 匹配项 (在:文本,
范围:NSRange(位置:0,长度:text.length))
让finalResult = results.map {
(文本为NSString).substring(with:$ 0。range)
}
返回finalResult
}捕获让错误{
打印(“错误正则表达式:\(error.localizedDescription)”)
返回[]
}
}
让allMatches = MatchesRegex(for:“ \\ b([az])\\。([az] {2,})@([az] +)\\。com \\。vn \\ b ”,在: “ v.vu @ gmail.com.vn,vi.vu @ hotmail.com,v.vub @ yahoo.com.vn,v.vub @ yahoo.com.vnq,v.vu1 @ gmail.com.vn”)
//结果
v.vu@gmail.com.vn
v.vub@yahoo.com.vn
1vídụkhác:lấytagvớiđiềukiều[ínhht1khoảngtrắng]#[ítnhất1kítự]
let allMatches = matchRegex(for:“ \\ s +(#[a-z0-9] +) ”,in:“有趣的时刻#funny ... #beach #resort #pinic#fun#danang”)
//结果
#滑稽
#海滩
#采取
#pinic
#乐趣
Thaythếchuỗitìmđược
用模板truyềnvàođịnhdạngmàta sẽmuốnchuyểnđổi,ứngvới$ 1,$ 2,$ 3…làcácnhómtrong匹配NSRegularExpression,vớithamsố。
func replaceRegex(用于正则表达式:字符串,在文本中:NSMutableString,临时字符:String)->字符串{
让正则表达式=尝试? NSRegularExpression (模式:regex,选项:.caseInsensitive)
正则表达式? replaceMatches (in:text,选项:.reportProgress,range:NSRange(location:0,length:text.length), withTemplate :temp)
以字符串形式返回文本
}
//Vídụ:Lấyrangàythángnămvàchènchữvàogiữa。
让strDate:NSMutableString =“ 04/05/2000”
let date = replaceRegex(for:“ ^(0 [1-9] | 1 [012])[-/。](0 [1-9] | [12] [0-9] | 3 [01])[ -/。](19 | 20)\\ d \\ d $“,格式:strDate,temp:“日:$ 1月:$ 2年:$ 3”)
// =>日期:04个月:05年份:20
视频:chúngtamuốnbỏkhoảngtrắngbêntráivàphảicủachuỗi
let trim = replaceRegex(for:“(?:^ \\ s +)|(?:\\ s + $)”,in:“ Nguyen Van A”,temp:“ $ 1”)
=>'阮文A'
Mìnhđãtrìnhbàyvềcơbảnsụdụngregex trong swift,regexcórấtnhiềuthứthúvịvàrộng,cácbạntìmhiểuthêmnhé,mìnhsiviếttiếpvào