Regex 用于在ID中捕获4个连续数字的正则表达式
我需要一个公式,从某个索引开始,然后得到接下来的4个连续数字。使用正则表达式。并测试它们是否在0000-4999范围内Regex 用于在ID中捕获4个连续数字的正则表达式,regex,string,regex-group,regex-greedy,Regex,String,Regex Group,Regex Greedy,我需要一个公式,从某个索引开始,然后得到接下来的4个连续数字。使用正则表达式。并测试它们是否在0000-4999范围内 ^.{6}\d{4}$[0000-4999] 这是我尝试过的一些代码。虽然我还是新手,不懂正则表达式 结果需要如下: 身份证号码: 9202204720082 获取以下4个数字:4720 从索引7开始(假定索引从1开始) 所以,如果索引为7、8、9和10,那么我们想要得到数字。 这样做是为了确定ID中的性别。您的原始表达式很好,这里我们可以将其稍微修改为: ^.{6}(\d
^.{6}\d{4}$[0000-4999]
这是我尝试过的一些代码。虽然我还是新手,不懂正则表达式
结果需要如下:
身份证号码:
9202204720082
获取以下4个数字:4720
从索引7开始(假定索引从1开始)
所以,如果索引为7、8、9和10,那么我们想要得到数字。
这样做是为了确定ID中的性别。您的原始表达式很好,这里我们可以将其稍微修改为:
^.{6}(\d{4}).+$
我们正在捕获此组中所需的数字(\d{4})
const regex=/^.{6}(\d{4})。+$/gm;
常量str=`920220720082`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
}
这可能有帮助:
(?<=\d{6})\d{4}(?<=\d{3})
(?此操作不需要使用正则表达式。只需获取子字符串即可获得相同的结果。根据您的编程语言,您可以执行以下操作:
JavaScript
var string=“920220720082”;
var指数=6;
console.log(string.substring(index,index+4));
您使用[0000-4999]
做什么?使用^.{6}(\d{4})
和抓取组1值,否则,使用(?如果您想使用锚,^\d{6}(\d{4})\d{3}$
。[0000-4999]
是一个字符类,与[012349]相同
但它是在字符串/行结束后,我更新了我的问题,使之更具体。它工作得很好,但我如何检查这些值是否在0000-4999范围内?不幸的是,我正在Salesforce Validation Rules Editor中工作。