需要一个正则表达式的数字,后跟没有空格、破折号、斜杠等的字母
本文关键字:空格 破折号 一个 数字 正则表达式 | 更新日期: 2023-09-27 18:35:18
我只是不太擅长正则表达式,而且我无法找到接近我需要的示例。提前感谢您的帮助。这是一个搜索输入框,如果用户已经知道它是数字或数字+字母序列,它将直接将用户带到他们正在寻找的内容
它必须以数字开头,数字可以是 1到许多位数字,数字后面的字母可以是 0、1 或 2 位数字。
传递示例:112123456123一1234ab123456789ab
失败示例:一个血型答1AB121ABC123ABC1-A1_a
你明白了。对于传递字符串,我还需要将数字与字母分开。
再次感谢。
语言是 c#。我需要测试传入的字符串,如果它通过正则表达式,则将其拆分为数字和字母部分。
试试
[0-9]+[a-z]{0,2}
希望这有帮助。
试试这个
var regex=new Regex("^(?<numbers>[0-9]+)(?<letters>[a-z]{0,2})$",RegexOptions.IgnoreCase);
var match=regex.Match(testString);
属性match.Success
告诉您它是否成功并且可以获取值
var numbers=match.groups["numbers"].Value;
var letters=match.groups["letters"].Value;
这应该有效:
/([0-9]+)([a-z]{0,2})/
根据您使用此正则表达式的语言,获取完整模式匹配和后续子模式匹配的方法可能会有所不同。
编辑:
修改了第二个子模式以匹配无字母,或最多匹配 2 个字母。
/([0-9]+)([a-zA-Z]{0,2})/
大写字母...
给出的所有答案仍然与失败列表中的 1-a 匹配,所以这是我的补充:
'b([0-9]+)([a-z]{0,2})(?!-)'b
测试: 1 12 123456 123a 1234ab 123456789ab a ab a1 ab12 1abc 123abc 1-a 1_a
比赛: 1 12 123456 123a 1234ab 123456789ab