<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在開發中我們常常會使用到正規表示式,但很奇怪的是,每次你在使用正規表示式的時候你都發現你不會寫,不知道語法,可能你大概還記得一部分,但很模糊,對於正規表示式的語法真心記不住,別的程式猿是不是我不清楚,但我是就是這樣子,每次寫都會發現記不住了,然後又去網上查詢資料,又進行一次學習,慢慢的發現基本語法你又會了,但實際上你還是不會,可能是沒有完全明白或者在實際開發中沒有長期的使用導致,今天寫這篇文章純屬嘮嗑,其餘的差不多都是複製貼上了,另外說一下最近這一次翻開正規表示式去匹配浮點型資料做的一點思路,這一點和之前的是不一樣的。以前寫的正則去匹配浮點型的時候會發現無法完全正確的匹配,找了網上不少的高手或者菜鳥教學直接抄過來使用,發現其實都是有問題的,問題出在哪兒呢,大部分出現的問題都是在處理"0"和".“的情況下。你可能忘記了,我可以幫大家會議一下,當然大部分還是對的,但是如果出現以0開頭的時候,你會發現,我可以輸入n個0開頭也能匹配出來,雖然有點會把連續的多個0開頭的部分丟掉,但還是讓人感覺匹配的不是很好,我有強迫症,這種匹配我認為是不正確的,另外就是”.",當你使用"."的時候,你會發現"xxxx."像這種格式的都能匹配,這是在逗我嗎,難道這也算正確的,這種情況我會直接否認掉,但是在以往的開發中,我為了完後任務,當然也就不管了,沒那麼嚴格,對於上面出現的這幾種情況我都心有不甘的預設了,畢竟開發需要的時間不能都花在搞這種問題上,時間那麼有限,所以我當然就默許了這種問題的存在。今天呢又來搞了搞正則,還是相同的東西,我想自己寫了,所以自己開搞了,廢話有點多了,接下來就進入主題吧。
1、非負浮點型:(^[1-9]d*.d+$|^0.d+$|^[1-9]d*$|^0$)
2、浮點型:(^-?[1-9]d*.d+$|^-?0.d+$|^-?[1-9]d*$|^0$)
上面的正則是怎麼寫的呢?我來講一講
將浮點型資料做拆分,為啥要拆分呢,因為不拆分很難實現匹配浮點型字串的正確格式
拆分成4類
1、非0開頭的浮點型(123.12)
2、0開頭的浮點型(0.12)
3、非0整數型
4、0
分別正規表示式
1、^[1-9]d*.d+$
2、^0.d+$
3、^[1-9]d*$
4、^0$
最後將4個表示式組合到一箇中就得到最終的結果
(^[1-9]d*.d+$|^0.d+$|^[1-9]d*$|^0$)
浮點型是存在正負數的,所以還需要給得到的正規表示式新增符號
(^-?[1-9]d*.d+$|^-?0.d+$|^-?[1-9]d*$|^0$)
語法解析
符號 | 描述 |
---|---|
^ | 以什麼開頭 |
$ | 以什麼結尾 |
. | 匹配任意非n的單字元 |
. | 匹配. |
+ | 匹配一次或多次 |
* | 匹配0次或多次 |
? | 匹配0次或1次 |
x|y | 表示匹配x或者y |
{n} | 表示匹配n次 |
[1-9] | 表示範圍1至9的任意1個數位 |
() | 強制優先順序,匹配括號需要在括號前加"" |
- | 表示負號 |
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main(String args[]) { String str = ""; String pattern = "(^[1-9]\d*\.\d+$|^0\.\d+$|^[1-9]\d*$|^0$)"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(str); System.out.println(m.matches()); } }
pattern="^[1-9]*[0-9]?(.[0-9]{1,2})?$"
到此這篇關於利用正規表示式匹配浮點型資料的文章就介紹到這了,更多相關正則匹配浮點型資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45