在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ 這種正則怎么匹配的?

這種正則怎么匹配的?

clipboard.png

這個(gè)正則后面那個(gè)(?=(\d{3}+\.))
不是只能匹配一次前面的12000000000嗎?
為什么還能繼續(xù)匹配前面的?
前面那些不是沒有.嗎,怎么就符合了?

回答
編輯回答
兮顏

不是很理解你哪里不理解,說下這個(gè)正則吧。
這個(gè)正則/(\d)(?=(\d{3})+\.)/的意思是捕獲.前面的3的倍數(shù)個(gè)數(shù)字前面的1個(gè)數(shù)字。
你的疑惑可能是因?yàn)闆]有看清楚(\d{3})+里面的+吧。

2018年1月15日 02:36
編輯回答
櫻花霓

模式修飾符/g會(huì)找到所有可匹配的。

/(\d)(?=(\d{3})+\.)/g
整個(gè)表達(dá)式的含義:匹配一個(gè)數(shù),其后跟著3*n個(gè)數(shù)加"."。(n是正整數(shù))
2018年5月14日 21:52
編輯回答
綰青絲

表則表達(dá)式/(\d)(?=(\d{3})+\.)/g

不是只能匹配一次前面的12000000000嗎?

先解答題主最關(guān)心的問題,這里出現(xiàn)多次匹配,出現(xiàn)是/g修飾符的作用,來直接看下/g的解釋:/g修飾符代表全局匹配,查找所有匹配而非在找到第一個(gè)匹配后停止。

然后分解下正則表達(dá)式各段的意思,把表達(dá)式分為三部分

  1. (\d) - 匹配左邊是一個(gè)數(shù)字且捕獲,標(biāo)記為1
  2. (\d{3})+\. - 以.符號結(jié)尾的,并且3個(gè)連續(xù)的數(shù)字為組,多次重復(fù)且盡可能多的匹配到(貪婪模式),且至少匹配中連續(xù)的3個(gè)連續(xù)數(shù)字1次以上,且捕獲,標(biāo)記為2
  3. (?=regexp) - (?=)表示零寬度正預(yù)測先行斷言,斷言自身出現(xiàn)的位置的后面能匹配表達(dá)式。結(jié)合1)和2)就是說:我只想匹配一個(gè)任意的數(shù)字(稱為目標(biāo)數(shù)字),但我希望這個(gè)數(shù)字串的末尾是以.號結(jié)尾的,并且希望這個(gè)目標(biāo)數(shù)字和.之間的部分是任意數(shù)量的3個(gè)數(shù)字成對出現(xiàn)的。
2017年4月17日 20:27