假设我有如下字符串:
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)位数字,但我需要排除单个数字。
假设我有如下字符串:
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
- 尾随单词边界.*
- 直到字符串结尾的任何字符。