当谈到正则表达式时,我是真正的新手,如果这“应该”很容易,我深表歉意。
我需要匹配具有以下格式的数字的最后 6 位
308950 3200 014559
前两组数字将保持不变(308950 3200),不需要提取。我只对最后 6 位数字感兴趣。
完整的数字可能包含空格,但这些必须是可选的。
这必须在正则表达式中完成。
当谈到正则表达式时,我是真正的新手,如果这“应该”很容易,我深表歉意。
我需要匹配具有以下格式的数字的最后 6 位
308950 3200 014559
前两组数字将保持不变(308950 3200),不需要提取。我只对最后 6 位数字感兴趣。
完整的数字可能包含空格,但这些必须是可选的。
这必须在正则表达式中完成。
使用正则表达式模式
(?<=\b308950\s*3200\s*)\d{6}\b
或者
\b308950\s*3200\s*(\d{6})\b
如果前导数字保持不变,您可以使用:
308950 3200\s*(\d{6})
或者,您可以使用:
(?:\d+\s)+(\d{6})
此外,如果字符串将位于输入字符串的末尾,请考虑在末尾添加一个$
来表示这一点(以确保它与字符串的末尾匹配):
(\d{6})$
即使数字之间有空格,也应该这样做
^308950 3200[\d\s]*?((\d\s?){6})$
第 1 组将包含带空格的所需数字(如果有)