Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于在ID中捕获4个连续数字的正则表达式_Regex_String_Regex Group_Regex Greedy - Fatal编程技术网

Regex 用于在ID中捕获4个连续数字的正则表达式

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

我需要一个公式,从某个索引开始,然后得到接下来的4个连续数字。使用正则表达式。并测试它们是否在0000-4999范围内

^.{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中工作。