正则表达式在看到数字时结束?

时间:2014-02-04 22:12:30

标签: regex

所以现在我正试图创建一个在ID中使用的正则表达式。 ID是一个字符串,因此它可以包含字母和数字。但是,我需要做一个表达式,看它得到数字,它不应该再接受字母并结束表达式。

我有什么:

[a-zA-Z]([a-zA-Z]|[0-9])*

示例:

"Bob23Dan"

答案示例:

1) "Bob23"
2) "Dan"

2 个答案:

答案 0 :(得分:2)

这将匹配可变数量的字母(至少一个),以可变数量的数字结尾(可选)

[a-zA-Z]+[0-9]*

答案 1 :(得分:0)

如果您可以容忍原始字符串中的数字后面有字母,但您只是不想匹配它们,那么我认为您需要这样:

^[a-zA-Z]*[0-9]+

将从字符串的开头(^)接收任意数量的字母,然后至少一个数字。如果没有数字,它将无法匹配,但如果有数字但没有字母则传递。

如果你想确保原始字符串中的数字之后没有字母(正则表达式的目的是测试而不是匹配),那么追加行结束字符($)就像这样:

^[a-zA-Z]*[0-9]+$