3 回答

TA貢獻1826條經(jīng)驗 獲得超6個贊
表則表達式/(\d)(?=(\d{3})+\.)/g
不是只能匹配一次前面的12000000000嗎?
先解答題主最關(guān)心的問題,這里出現(xiàn)多次匹配,出現(xiàn)是/g
修飾符的作用,來直接看下/g
的解釋:/g
修飾符代表全局匹配,查找所有匹配而非在找到第一個匹配后停止。
然后分解下正則表達式各段的意思,把表達式分為三部分
(\d)
- 匹配左邊是一個數(shù)字且捕獲,標(biāo)記為1(\d{3})+\.
- 以.
符號結(jié)尾的,并且3個連續(xù)的數(shù)字為組,多次重復(fù)且盡可能多的匹配到(貪婪模式),且至少匹配中連續(xù)的3個連續(xù)數(shù)字1次以上,且捕獲,標(biāo)記為2(?=regexp)
-(?=)
表示零寬度正預(yù)測先行斷言,斷言自身出現(xiàn)的位置的后面能匹配表達式。結(jié)合1)和2)就是說:我只想匹配一個任意的數(shù)字(稱為目標(biāo)數(shù)字),但我希望這個數(shù)字串的末尾是以.
號結(jié)尾的,并且希望這個目標(biāo)數(shù)字和.
之間的部分是任意數(shù)量的3個數(shù)字成對出現(xiàn)的。

TA貢獻1810條經(jīng)驗 獲得超4個贊
不是很理解你哪里不理解,說下這個正則吧。
這個正則/(\d)(?=(\d{3})+\.)/
的意思是捕獲.
前面的3的倍數(shù)個數(shù)字前面的1個數(shù)字。
你的疑惑可能是因為沒有看清楚(\d{3})+
里面的+
吧。

TA貢獻1995條經(jīng)驗 獲得超2個贊
模式修飾符/g會找到所有可匹配的。
/(\d)(?=(\d{3})+\.)/g
整個表達式的含義:匹配一個數(shù),其后跟著3*n個數(shù)加"."。(n是正整數(shù))
添加回答
舉報