假設我有這樣的字符串:正則表達式匹配2個或多個數字字符串中的
ABC-L-W7P-1423
ABC-L-W7E-87
CH-L-W7-756
我需要搶號結尾。該數字可能是2,3或4位數字。但目前我所擁有的是:
=REGEXREPLACE(B2,"[^0-9]","")
哪個當然也抓住了'W7P''我不想要'的'7'。 編輯:
我還需要匹配是這樣的:
CH-M-311-MM
所以總是有2,3或4(或5)位數字,但我需要排除個位數。
假設我有這樣的字符串:正則表達式匹配2個或多個數字字符串中的
ABC-L-W7P-1423
ABC-L-W7E-87
CH-L-W7-756
我需要搶號結尾。該數字可能是2,3或4位數字。但目前我所擁有的是:
=REGEXREPLACE(B2,"[^0-9]","")
哪個當然也抓住了'W7P''我不想要'的'7'。 編輯:
我還需要匹配是這樣的:
CH-M-311-MM
所以總是有2,3或4(或5)位數字,但我需要排除個位數。
您可以使用=REGEXEXTRACT
與\b[0-9]{2,4}\b
:
=REGEXEXTRACT(B2, "\b[0-9]{2,4}\b")
詳細:
\b
- 領先字邊界[0-9]{2,4}
- 2到4位\b
- 尾字邊界如果您的2-4位總是以-
開頭,您可以使用
=REGEXREPLACE(B2,"^.*-([0-9]{2,4})\b.*","$1")
詳細:
^
- 串.*-
- 任何0+字符,直到最後-
後跟有...([0-9]{2,4})
- (第1組以$1
在替換模式) - 2到4位\b
- 尾隨字邊界.*
- 高達字符串的末尾任何字符。RE2正則表達式庫不支持lookarounds。即使是前瞻('(?!...)') –
'= REGEXREPLACE(B2,「[0-9] {2,4} $」,「」)' – anubhava
這個作品 - 謝謝 - 但我已經添加了新的信息。我需要的號碼在字符串的末尾不是必須的。 – daninthemix
用'\ b [0-9] {2,4} \ b'嘗試'= REGEXEXTRACT':'= REGEXEXTRACT(B2,「\ b [0-9] {2,4} \ b」)' –