我对正则表达式并不擅长,而且我无法找到一个接近我需要的东西的例子。在此先感谢您的帮助。这是一个搜索输入框,如果用户已经知道它的编号或编号+字母序列,它将直接将用户带到他们要查找的内容
它必须以数字开头,数字可以是1到数字,数字后面的字母可以是0,1或2位。
传递的例子: 1 12 123456 123A 1234ab 123456789ab
失败的例子: 一个 AB A1 AB12 1ABC 123ABC 1-一个 1_A
你明白了。对于传递的字符串,我还需要将数字与字母分开。
再次感谢。
语言是c#。我需要测试传入的字符串,如果它通过正则表达式,则将其拆分为数字和字母部分。
答案 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