欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用正則表達(dá)式匹配浮點(diǎn)型數(shù)據(jù)

 更新時(shí)間:2022年05月27日 11:32:24   作者:R峰  
正則表達(dá)式用于字符串處理、表單驗(yàn)證、日志數(shù)據(jù)分析等場(chǎng)合,實(shí)用高效,下面這篇文章主要給大家介紹了關(guān)于如何利用正則表達(dá)式匹配浮點(diǎn)型數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下

前言:

在開(kāi)發(fā)中我們常常會(huì)使用到正則表達(dá)式,但很奇怪的是,每次你在使用正則表達(dá)式的時(shí)候你都發(fā)現(xiàn)你不會(huì)寫(xiě),不知道語(yǔ)法,可能你大概還記得一部分,但很模糊,對(duì)于正則表達(dá)式的語(yǔ)法真心記不住,別的程序猿是不是我不清楚,但我是就是這樣子,每次寫(xiě)都會(huì)發(fā)現(xiàn)記不住了,然后又去網(wǎng)上查找資料,又進(jìn)行一次學(xué)習(xí),慢慢的發(fā)現(xiàn)基本語(yǔ)法你又會(huì)了,但實(shí)際上你還是不會(huì),可能是沒(méi)有完全明白或者在實(shí)際開(kāi)發(fā)中沒(méi)有長(zhǎng)期的使用導(dǎo)致,今天寫(xiě)這篇文章純屬嘮嗑,其余的差不多都是復(fù)制粘貼了,另外說(shuō)一下最近這一次翻開(kāi)正則表達(dá)式去匹配浮點(diǎn)型數(shù)據(jù)做的一點(diǎn)思路,這一點(diǎn)和之前的是不一樣的。以前寫(xiě)的正則去匹配浮點(diǎn)型的時(shí)候會(huì)發(fā)現(xiàn)無(wú)法完全正確的匹配,找了網(wǎng)上不少的高手或者菜鳥(niǎo)教程直接抄過(guò)來(lái)使用,發(fā)現(xiàn)其實(shí)都是有問(wèn)題的,問(wèn)題出在哪兒呢,大部分出現(xiàn)的問(wèn)題都是在處理"0"和".“的情況下。你可能忘記了,我可以幫大家會(huì)議一下,當(dāng)然大部分還是對(duì)的,但是如果出現(xiàn)以0開(kāi)頭的時(shí)候,你會(huì)發(fā)現(xiàn),我可以輸入n個(gè)0開(kāi)頭也能匹配出來(lái),雖然有點(diǎn)會(huì)把連續(xù)的多個(gè)0開(kāi)頭的部分丟掉,但還是讓人感覺(jué)匹配的不是很好,我有強(qiáng)迫癥,這種匹配我認(rèn)為是不正確的,另外就是”.",當(dāng)你使用"."的時(shí)候,你會(huì)發(fā)現(xiàn)"xxxx."像這種格式的都能匹配,這是在逗我嗎,難道這也算正確的,這種情況我會(huì)直接否認(rèn)掉,但是在以往的開(kāi)發(fā)中,我為了完后任務(wù),當(dāng)然也就不管了,沒(méi)那么嚴(yán)格,對(duì)于上面出現(xiàn)的這幾種情況我都心有不甘的默認(rèn)了,畢竟開(kāi)發(fā)需要的時(shí)間不能都花在搞這種問(wèn)題上,時(shí)間那么有限,所以我當(dāng)然就默許了這種問(wèn)題的存在。今天呢又來(lái)搞了搞正則,還是相同的東西,我想自己寫(xiě)了,所以自己開(kāi)搞了,廢話有點(diǎn)多了,接下來(lái)就進(jìn)入主題吧。

正則表達(dá)式

1、非負(fù)浮點(diǎn)型:(^[1-9]\d*\.\d+$|^0\.\d+$|^[1-9]\d*$|^0$)

2、浮點(diǎn)型:(^-?[1-9]\d*\.\d+$|^-?0\.\d+$|^-?[1-9]\d*$|^0$)

上面的正則是怎么寫(xiě)的呢?我來(lái)講一講

將浮點(diǎn)型數(shù)據(jù)做拆分,為啥要拆分呢,因?yàn)椴徊鸱趾茈y實(shí)現(xiàn)匹配浮點(diǎn)型字符串的正確格式

拆分成4類

1、非0開(kāi)頭的浮點(diǎn)型(123.12)
2、0開(kāi)頭的浮點(diǎn)型(0.12)
3、非0整數(shù)型
4、0

分別正則表達(dá)式

1、^[1-9]\d*\.\d+$
2、^0\.\d+$
3、^[1-9]\d*$
4、^0$

最后將4個(gè)表達(dá)式組合到一個(gè)中就得到最終的結(jié)果

(^[1-9]\d*\.\d+$|^0\.\d+$|^[1-9]\d*$|^0$)

浮點(diǎn)型是存在正負(fù)數(shù)的,所以還需要給得到的正則表達(dá)式添加符號(hào)

(^-?[1-9]\d*\.\d+$|^-?0\.\d+$|^-?[1-9]\d*$|^0$)

語(yǔ)法解析

符號(hào)描述
^以什么開(kāi)頭
$以什么結(jié)尾
.匹配任意非\n的單字符
\.匹配.
+匹配一次或多次
*匹配0次或多次
?匹配0次或1次
x|y表示匹配x或者y
{n}表示匹配n次
[1-9]表示范圍1至9的任意1個(gè)數(shù)字
()強(qiáng)制優(yōu)先級(jí),匹配括號(hào)需要在括號(hào)前加"\"
-表示負(fù)號(hào)

Java代碼

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());
	}

}

附:正則表達(dá)式(同時(shí)匹配整型數(shù)和浮點(diǎn)數(shù))

pattern="^[1-9]*[0-9]?(\.[0-9]{1,2})?$"

總結(jié)

到此這篇關(guān)于利用正則表達(dá)式匹配浮點(diǎn)型數(shù)據(jù)的文章就介紹到這了,更多相關(guān)正則匹配浮點(diǎn)型數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用正則表達(dá)式來(lái)表示中文

    用正則表達(dá)式來(lái)表示中文

    用正則表達(dá)式來(lái)表示中文...
    2007-04-04
  • 正則表達(dá)式基礎(chǔ)學(xué)習(xí)一文入門

    正則表達(dá)式基礎(chǔ)學(xué)習(xí)一文入門

    這篇文章主要為大家介紹了正則表達(dá)式基礎(chǔ)學(xué)習(xí)一文入門詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 正則表達(dá)式、分組、子匹配(子模式)、非捕獲子匹配(子模式)

    正則表達(dá)式、分組、子匹配(子模式)、非捕獲子匹配(子模式)

    前面我們知道正則表達(dá)式有很多元字符表示匹配次數(shù)(量詞),都是可以重復(fù)匹配前面出現(xiàn)的單個(gè)字符次數(shù),需要的朋友可以參考下
    2016-06-06
  • 匹配yyyy-mm-dd日期格式的的正則表達(dá)式

    匹配yyyy-mm-dd日期格式的的正則表達(dá)式

    今天頭讓我修改個(gè)javascript方法,驗(yàn)證輸入的日期是否符合要求。恩。我們的要求是yyyy-mm-dd這樣的格式,其他的統(tǒng)統(tǒng)不符合要求。原來(lái)的方法沒(méi)用正則表達(dá)式,用了一堆判斷。
    2011-08-08
  • mysql update正則替換sql語(yǔ)句

    mysql update正則替換sql語(yǔ)句

    這篇文章主要介紹了mysql update正則替換sql語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • PHP 正則表達(dá)式 推薦

    PHP 正則表達(dá)式 推薦

    正則表達(dá)式,大家在開(kāi)發(fā)中應(yīng)該是經(jīng)常用到,現(xiàn)在很多開(kāi)發(fā)語(yǔ)言都有正則表達(dá)式的應(yīng)用,比如javascript,java,.net,php等等,我今天就把我對(duì)正則表達(dá)式的理解跟大家嘮嘮,不當(dāng)之處,請(qǐng)多多指教
    2012-03-03
  • 史上最全正則表達(dá)式合集(馬上收藏)

    史上最全正則表達(dá)式合集(馬上收藏)

    這篇文章主要介紹了史上最全正則表達(dá)式合集(馬上收藏),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 前端正則表達(dá)式書(shū)寫(xiě)及常用的方法

    前端正則表達(dá)式書(shū)寫(xiě)及常用的方法

    這篇文章主要介紹了前端正則表達(dá)式書(shū)寫(xiě)及常用的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • JS正則中的match與exec使用說(shuō)明

    JS正則中的match與exec使用說(shuō)明

    match() 方法將檢索目標(biāo)字符串,以找到一個(gè)或多個(gè)與 正則表達(dá)式regexp 匹配的文本。
    2011-08-08
  • 正則表達(dá)式之捕獲組/非捕獲組介紹

    正則表達(dá)式之捕獲組/非捕獲組介紹

    使用小括號(hào)指定一個(gè)子表達(dá)式后,匹配這個(gè)子表達(dá)式的文本(也就是此分組捕獲的內(nèi)容)可以在表達(dá)式或其它程序中作進(jìn)一步的處理。
    2011-08-08

最新評(píng)論