-2

当谈到正则表达式时,我是真正的新手,如果这“应该”很容易,我深表歉意。

我需要匹配具有以下格式的数字的最后 6 位

308950 3200 014559

前两组数字将保持不变(308950 3200),不需要提取。我只对最后 6 位数字感兴趣。

完整的数字可能包含空格,但这些必须是可选的。

这必须在正则表达式中完成。

4

3 回答 3

0

使用正则表达式模式

(?<=\b308950\s*3200\s*)\d{6}\b

或者

\b308950\s*3200\s*(\d{6})\b
于 2012-10-17T13:07:33.487 回答
0

如果前导数字保持不变,您可以使用:

308950 3200\s*(\d{6})

或者,您可以使用:

(?:\d+\s)+(\d{6})

此外,如果字符串将位于输入字符串的末尾,请考虑在末尾添加一个$来表示这一点(以确保它与字符串的末尾匹配):

(\d{6})$
于 2012-10-17T13:03:10.210 回答
0

即使数字之间有空格,也应该这样做

^308950 3200[\d\s]*?((\d\s?){6})$

第 1 组将包含带空格的所需数字(如果有)

于 2012-10-17T13:03:15.843 回答