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

时间:2012-05-25 20:07:37

标签: c# regex

我对正则表达式并不擅长,而且我无法找到一个接近我需要的东西的例子。在此先感谢您的帮助。这是一个搜索输入框,如果用户已经知道它的编号或编号+字母序列,它将直接将用户带到他们要查找的内容

它必须以数字开头,数字可以是1到数字,数字后面的字母可以是0,1或2位。

传递的例子: 1 12 123456 123A 1234ab 123456789ab

失败的例子: 一个 AB A1 AB12 1ABC 123ABC 1-一个 1_A

你明白了。对于传递的字符串,我还需要将数字与字母分开。

再次感谢。

语言是c#。我需要测试传入的字符串,如果它通过正则表达式,则将其拆分为数字和字母部分。

5 个答案:

答案 0 :(得分:3)

[0-9]+[a-z]{0,2}

希望这有帮助。

答案 1 :(得分: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;

答案 2 :(得分:1)

这应该有效:

/([0-9]+)([a-z]{0,2})/

根据您使用此正则表达式的语言,获取完整模式匹配和后续子模式匹配的方法可能会有所不同。

编辑:

修改第二个子图案以匹配任何字母,或最多2个字母。

答案 3 :(得分:1)

/([0-9]+)([a-zA-Z]{0,2})/首都......

答案 4 :(得分:0)

所有给出的答案仍然与失败列表中的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