c# - 使用正则表达式验证字符串
问题描述
我正在尝试使用此正则表达式验证字符串
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
我需要帮助来编写一个正则表达式来用这个规则验证这个字符串。
解决方案
这应该为你做:
^(?=\d*[1-9])\d{1,4}(?:-[X\d])?$
它以积极的前瞻性开始,以确保存在非零数字 ( (?=\d*[1-9])
)。此后,它匹配 1-4 位数字,可选地后跟连字符和数字 or X
。
推荐阅读
- c# - “HttpClient”不包含“GetFromJsonAsync”的定义
- php - Wordpress:必须调用两次 Wp 导航菜单才能正常工作?
- react-native - 如何为 React-native 中导入的屏幕正确设置 backgroundColor?
- r - flextable 对象第一列的缩进
- mysql - MySQL查找字符串中第一个非数字字符的位置
- python - 如何在 pyspark 数据框中创建日期时间列?
- extjs - 关于 ExtJS 图表中显示小数字的问题
- python - 重置程序后python字典是否会删除其内容
- javascript - 如何在只读模式和输入模式之间切换html标签?
- php - Symfony 5.1 使用服务创建扩展