首页 > 解决方案 > 使用正则表达式验证字符串

问题描述

我正在尝试使用此正则表达式验证字符串

var regexAgencia = new Regex("^(?!0000)([0-9]{4})");
var result = regexAgencia.IsMatch(agencia);

有效选项:

N-X
NN-X
NNN-X
NNNN-X
N
NN 
NNN 
NNNN

无效选项:

0-X 
00-X 
000-X 
0000-X
0
00
000
0000

其中 N 是 0-9 的任意数字,X 可以是 X 或 0-9

当我验证这个“014777417”时,正则表达式返回 true

我需要帮助来编写一个正则表达式来用这个规则验证这个字符串。

标签: c#regex

解决方案


这应该为你做:

^(?=\d*[1-9])\d{1,4}(?:-[X\d])?$

它以积极的前瞻性开始,以确保存在非零数字 ( (?=\d*[1-9]))。此后,它匹配 1-4 位数字,可选地后跟连字符和数字 or X

在 regex101 处查看


推荐阅读