实现正则表达式匹配肆意字符解析[Java编程]
本文“实现正则表达式匹配肆意字符解析[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我们若何实现正则表达式匹配肆意字符的效果呢?这个历程需求利用什么呢?具体的操作需求注意那些方面呢?那么目前我们就来揭开这奥秘的一面:
实现正则表达式匹配肆意字符的本相:
利用“.”匹配几近肆意字符.在正则表达式中,“.”是最常用的标记之一.不幸的是,它也是最简单被误用的标记之一.
“.”匹配一个单个的字符而不用关心被匹配的字符是什么.唯一的例外是新行符.在本教程中谈到的引擎,缺省情形下都是不匹配新行符的.因此在缺省情形下,“.”等于是字符集[^\n\r](Window)或[^\n]( Unix)的简写.
这个例外是因为历史的缘由.因为早期利用正则表达式的工具是基于行的.它们都是一行一行的读入一个文件,将正则表达式辨别利用到每一行上去.在这些工具中,字符串是不包含新行符的.因此“.”也就从不匹配新行符.
现代的工具和语言可以将正则表达式利用到很大的字符串乃至整个文件上去.本教程谈论的全部正则表达式实现都供应一个选项,可以使“.”匹配全部的字符,包含新行符.在RegexBuddy, EditPad Pro或PowerGREP等工具中,你可以简单的选中“点号匹配新行符”.在Perl中,“.”可以匹配新行符的情势被称作“单行情势”.很不幸,这是一个很简单混合的名词.因为还有所谓“多行情势”.多行情势只影响行首行尾的锚定(anchor),而单行情势只影响“.”.
其他语言和正则表达式库也采取了Perl的术语定义.当在.NET Framework中利用正则表达式类时,你可以用近似下面的语句来激活单行情势:Regex.Match(“string”,”regex”,RegexOptions.SingleLine)
实现正则表达式匹配肆意字符的一点总结:
◆保守的利用点号“.”
点号可以说是最强盛的元字符.它答应你偷懒:用一个点号,就可以匹配几近全部的字符.但是问题在于,它也常常会匹配不该匹配的字符.
我会以一个简单的例子来阐明.让我们看看若何匹配一个具有“mm/dd/yy”格局的日期,但是我们想答应用户来挑选脱离符.很快能想到的一个筹划是<<\d\d.\d\d.\d\d>>.看上去它能匹配日期“02/12/03”.问题在于02512703也会被认为是一个有效的日期.
<<\d\d[-/.]\d\d[-/.]\d\d>>看上去是一个好一点的办理筹划.记着点号在一个字符集里不是元字符.这个筹划远不够完善,它会匹配“99/99/99”.而<<[0-1]\d[-/.][0-3]\d[-/.]\d\d>> 又更进一步.固然他也会匹配“19/39/99”.你想要你的正则表达式到达若何完善的程度取决于你想到达什么样的目的.假如你想校验用户输入,则需求尽大概的完善.假如你只是想解析一个已知的源,并且我们知道没有错误的数据,用一个对比好的正则表达式来匹配你想要搜索的字符就已经充足.
实现正则表达式匹配肆意字符的相关内容就向你介绍到这里,但愿对你理解和学习实现正则表达式匹配肆意字符有所帮忙.
以上是“实现正则表达式匹配肆意字符解析[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |