2

我有这样的场景:

 a) word  => capture "word"
 b) word_and_digit_90 => capture "word_and_digit" and "90"
 c) word_90 => capture "word" and 90

我有这样的正则表达式,这对案例 a) 和 c) 很好,但对 b) 失败

 /([a-z]+)(?:_(\d+)){0,1}/i

如果有人会建议 a)、b)、c) 的解决方案,我将不胜感激

编辑

一种建议的解决方案是:

 /([a-z]+(?:_[a-z]+){0,})(?:_(\d+)){0,1}/i

我想如果有人提出好的替代方案

4

2 回答 2

4

试试这个正则表达式:

/([a-z_]+[a-z])(?:_(\d+))?/
于 2013-06-05T06:15:52.737 回答
0

最简单的:

/^[a-z]+[_a-z\d]+$/
于 2013-06-05T06:17:53.593 回答