C# 正则表达式解析数字组
我所拥有的:C# 正则表达式解析数字组,c#,regex,C#,Regex,我所拥有的: 1. 25686-47362-04822-08149-48999-28161-15124-63556 2. 25686-47362-04822-08149-48999-28161-15124-6355654534 3. 54354325686-47362-04822-08149-48999-28161-15124-63556 4. 25686-47362-04822-08149-48999-28161-15124-6355654534fds 5. fdsfds5435432
1. 25686-47362-04822-08149-48999-28161-15124-63556
2. 25686-47362-04822-08149-48999-28161-15124-6355654534
3. 54354325686-47362-04822-08149-48999-28161-15124-63556
4. 25686-47362-04822-08149-48999-28161-15124-6355654534fds
5. fdsfds54354325686-47362-04822-08149-48999-28161-15124-63556
6. 25686-47362-04822-08149-48999-28161-15124-63556-63556
我期望得到什么
1. 25686-47362-04822-08149-48999-28161-15124-63556
我尝试了一些最接近的([0-9]{5,5}){8}
我试图避免2,3,4,5,6。我不确定是否有办法让它“重复”分组,但我会这样键入:
/^([0-9]{5}\-[0-9]{5}\-[0-9]{5}\-[0-9]{5}\-[0-9]{5}\-[0-9]{5}\-[0-9]{5}\-[0-9]{5})/
您可以使用以下选项:
^\d+\.\s(\d{5}-?){8}$
它匹配一整行符合您的条件:一个数字或更多、一个点、一个空格、8个块或5个带连字符的数字。试试这个
string source = @"25686-47362-04822-08149-48999-28161-15124-63556";
bool result = Regex.IsMatch(source, "^[0-9]{5}(-[0-9]{5}){7}$");
说明:
^ anchor (beginning of the string)
[0-9]{5} 5 digits group
(-[0-9]{5}){7} 7 more groups of 5 digits
$ anchor (ending of the string)
您可以通过以下方式限定该行:
/^((?:\D|^)\d{5}){8}$/m
或
更具体地说,使用连字符分隔符。源是什么?字符串还是文件?什么是环境?Perl、Grep、Python、Javascript、Vim?
-25686-47362-04822-08149-48999-28161-15124-63556
,请注意将匹配的开始-
,但OP没有指定额外的-
是一个选项。。。不清楚这是否是一个问题。很好,迪玛,这是正确的风格。尽可能展开表达式,并将量化组保留在表达式末尾。
/^((?:-|^)\d{5}){8}$/m