我需要一个公式才能从某个索引处开始,然后获取接下来的4个连续数字。使用REGEX。并测试它们是否在0000-4999范围内。
^.{6}\d{4}$[0000-4999]
这是我尝试过的一些代码。尽管我还很新,对正则表达式也不了解。
结果需要如下:
ID号:
9202204720082
获取以下4个数字:4720
从索引7开始(假定索引从1开始)
因此,如果要获取索引7、8、9和10的数字,则希望获取数字。 这样做是为了确定ID中的性别。
答案 0 :(得分:1)
答案 1 :(得分:0)
您的原始表达式就可以了,在这里我们可以将其略微修改为:
^.{6}(\d{4}).+$
我们正在(\d{4})
组中捕获我们想要的数字。
const regex = /^.{6}(\d{4}).+$/gm;
const str = `9202204720082`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
jex.im可视化正则表达式:
答案 2 :(得分:0)
您不需要为此使用正则表达式。您只需获取子字符串即可达到相同的结果。根据您的编程语言,您可能会执行以下操作:
var string = "9202204720082";
var index = 6;
console.log(string.substring(index, index + 4));
string = '9202204720082'
index = 6
string[index, 4]
#=> "4720"
my $string = '9202204720082';
my $index = 6;
substr($string, $index, 4);
#=> "4720"