需要一个正则表达式的数字,后跟没有空格、破折号、斜杠等的字母

本文关键字:空格 破折号 一个 数字 正则表达式 | 更新日期: 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