gpt4 book ai didi

c# - 从 10 位数字中获取所有可能的连续 4 位数字

转载 作者:太空狗 更新时间:2023-10-30 00:23:38 24 4
gpt4 key购买 nike

我正在尝试制作一个正则表达式以从一个 10 位数字中获取所有可能的连续 4 位 数字。喜欢

num = "2345678901";

输出:2345, 3456, 4567, 5678, 6789, 7890, 8901

这些简单的正则表达式不起作用:

[\d]{4}
(\d\d\d\d)

最佳答案

您需要使用 (?=(\d{4})) 正则表达式来匹配重叠的匹配项。

查看 regex demo

您正在使用的正则表达式都在消耗 4 位数字的文本 block ,因此重叠值不匹配。使用 (?=...) 正向先行,您可以测试输入字符串中的每个 位置,并从这些位置捕获 4 位数字 block ,而不消耗字符(即不将正则表达式引擎指针移动到这 4 位数字 block 之后的位置)。

enter image description here

C# demo :

var data = "2345678901";
var res = Regex.Matches(data, @"(?=(\d{4}))")
.Cast<Match>()
.Select(p => p.Groups[1].Value)
.ToList();
Console.WriteLine(string.Join("\n", res));

关于c# - 从 10 位数字中获取所有可能的连续 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36188223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com