c# - C# .Net RegEx:前 3 个字符必须是 1-100 之间的数字,后 3 个字符可以是任何字符
问题描述
我正在尝试为控制台应用程序设置 RegEx。我的问题是定义正则表达式。
我试过了;
^([1-9][0-9]?|^100){3}[a-zA-Z]{3}$
和
^[0-9]{3}[a-zA-Z]{3}$
但我无法解决它。
正则表达式 r = new Regex(@"^([1-9][0-9]?|^100){3}[a-zA-Z]{3}$");
if (r.IsMatch(textBox1.Text)) { MessageBox.Show("OK"); } else { MessageBox.Show("NO"); }
第一个 3 必须是 1-100 之间的数字,第二个 3 必须是任意三个字符,例如“ 123ABC ”或“ 405006ghd ”或“ 7093zyx ”。
解决方案
在您的模式中,您可以删除^
from,^100
因为它已经在模式的开头指定。
在您的示例中,数据405006ghd
不匹配,因为[1-9][0-9]?
不允许前导零,因此无法匹配06
您可以匹配 100、数字 1 - 99 或数字 0-9 以及可选的前导零:
^(?:100|[1-9][0-9]|0?[1-9]){3}[a-zA-Z]{3}$
详细地
^
字符串的开始(?:
非捕获组100
从字面上匹配|
或者[1-9][0-9]
比赛 10 - 99|
或者0?[1-9]
匹配 1-9 和可选的前导 0
){3}
关闭非捕获组并重复 3 次[a-zA-Z]{3}
匹配 az AZ 3 次$
字符串结束
推荐阅读
- docker - 如何在 docker 容器中运行 minikube?
- php - php tow爆炸和比较
- python - 在python中使用csv文件创建字典文件
- multithreading - 执行需要 5 秒的操作(如发送电子邮件)但立即返回并回复?
- database - MariaDB 安装问题'mariadb.service: 失败,结果'超时'。'
- node.js - Parcel+Sass+npm:“错误:无法安装@parcel/transformer-sass:回调必须是函数。收到未定义
- python - Python 程序在 VS Code 终端中启动缓慢
- javascript - JavaScript - 带有十进制值的正则表达式
- c - 如何通过放入 scanf 的数字数量来定义数组的限制?
- python - 使用 pd.isin() 检查一列中的值是否在另一列的列表中