c# - C#检查输入是否在A的模式中
问题描述
可能的输入:
1) ASDF-123-ZXCV-456
2) YUIO-123-BNNM-987
3) QWER-123-LKJH-111
4) A1234
5) A456
我需要找到与 Axxx(integer) 模式匹配的输入,在这种情况下,应该返回 4) 或 5)。
我尝试了 startWith("A"),但 1) 仍然返回,因为它也以 A 开头,但我不希望那样
提前致谢
解决方案
扩展@aleks-andreev 的评论,您可以尝试:
bool IsLetterAThenNumericPattern(string candidate)
{
return System.Text.RegularExpressions.Regex.IsMatch(candidate, @"^A\d+$");
}
对于以下情况,这将返回true
:
- A1
- A123
- A1234567890101
对于以下情况,则为 false:
- B1
- 一个
- A12345A
- A123-456
正则表达式分解如下:
^
从字符串的开头开始A
仅匹配字母 A\d+
匹配一位或多位数字$
字符串的结尾。
总之,此正则表达式仅在字符串以字母 A 开头并且后跟 >=1 位数字时才返回 true,仅此而已。
推荐阅读
- neo4j - Neo 4j 中为节点定义的属性/属性的限制是什么?
- c++ - Similar Char(TCS CodeVita) 减少时间复杂度
- d3.js - 过滤d3时如何突出显示分组图表的一部分
- python - 在一行中的列表中添加相同值的 Pythonic 方式?
- entity-framework - 设置项目时如何更改 App.config 和数据库 (sqlite) 中的连接字符串?
- python-3.x - 在 Python 中模拟 10,000 个硬币翻转非常慢
- c# - 如何修复错误 CS1738 命名参数规范必须在指定所有固定参数后出现
- python - 将 Pandas 系列中的项目转换为日期时间
- java - Java中枚举的缺点是什么?
- javascript - 如何npm发布根文件夹中的所有文件