java如何使用正则表达式从固定的Y位数中提取最后的X位数?
如何使用正则表达式从固定的Y位数中提取最后的X位数
输入:1234567890123456
((?=\d{16}$)\d{10}|) gives 1234567890
但是
((?=\d{16}$)\d{10}$|) does not give 7890123456
基本上,我想要最后10个数字,如果它是强制的16个数字,则不否则无
你可以在下面搜索框中键入要查询的问题!
如何使用正则表达式从固定的Y位数中提取最后的X位数
输入:1234567890123456
((?=\d{16}$)\d{10}|) gives 1234567890
但是
((?=\d{16}$)\d{10}$|) does not give 7890123456
基本上,我想要最后10个数字,如果它是强制的16个数字,则不否则无
# 1 楼答案
从regex101可以看到,正则表达式
^\d{6}(\d{10})$
将检查String
从开始到结束是否有16位(因此检查长度)并捕获最后10位^
:字符串的开头\d{6}
:前6位(\d{10})
:捕获10位数字$
:字符串的结尾所以你可以在Java中使用它
这可以在这个ideone上检查
只需添加一个
else
子句即可打印出String
无效# 2 楼答案
看起来您没有使用Java,无法使用捕获组
对于tibco工具,您可以使用此带有16位验证的正则表达式来获取最后10位:
RegEx Demo
正则表达式拆分:
(?<=^\d{6})
是一个积极的向后看,可以断言从开始到前一个位置有6个数字\d{10}$
匹配字符串末尾的10位数字# 3 楼答案
如何使用正则表达式从固定的Y位数中提取最后的X位数
。{十} 美元
其中X是要提取的位数