使用C#匹配包含字符的数字

时间:2018-01-26 14:21:16

标签: c# regex

我需要从数字序列中间带有字母'A'的字符串中获取匹配,特别是16个字符。

示例输入和预期结果:

  

A4921000A05034816 => 4921000A05034816

     

4921000A05034816 => 4921000A05034816(相同,16个字符,15位数字和中间的'A')

     

4921000405034816 => 4921000405034816

我尝试过以下正则表达式:

@"[0-A-9]{16}"

在第一种情况下,它匹配第一个A,即使它不在序列的中间,这是不正确的。

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

好的,试试这个正则表达式,没有承诺。

((A)?[0-9A]){16}

有一百万个网站可以帮助正则表达式

  

https://www.regexpal.com/

是我最喜欢的

希望这有帮助

答案 1 :(得分:0)

看起来你想得到最后16个字符(需要确认)。如果我是对的,你只需要你的正则表达式的结束分隔符。

使用PCRE将为.*([0-9A]{16})$。也许C#的结束分隔符不是$

答案 2 :(得分:0)

这个正则表达式适用于你的例子:

\d{7}(A|\d)\d{8}

如果'A'始终在8位置。

[\d][\dA]{15}

如果'A'可以在任何地方但不在第一个位置

答案 3 :(得分:0)

\d[\dA]{14}\d

这将匹配以数字开头和结尾的16个字符的字符串,并在中间有数字和字母A。 (允许0或更多A s)