使用正则表达式匹配“前景”或“前景”或“前景”......或“f”的最简单方法是什么?

时间:2013-12-31 10:17:25

标签: regex

使用正则表达式匹配“前景”或“foregroun”或“foregrou”...或“f”的最简单方法是什么?我知道我可以用下面的Regex来做。但是我想知道是否有更简单的。

^f|fo|for|fore|foreg|foregr|foregro|foregrou|foregroun|foreground$

1 个答案:

答案 0 :(得分:5)

你的正则表达式是不正确的;你需要通过使用一组(最好是非捕获)来限制交替的范围:

^(?:f|fo|for|fore|foreg|foregr|foregro|foregrou|foregroun|foreground)$

这已经很简单了;另一种选择(如果您认为上述正则表达式违反DRY原则)将是

^(?:f(?:o(?:r(?:e(?:g(?:r(?:o(?:u(?:n(?:d)?)?)?)?)?)?)?)?)?)$