使用正则表达式匹配“前景”或“foregroun”或“foregrou”...或“f”的最简单方法是什么?我知道我可以用下面的Regex来做。但是我想知道是否有更简单的。
^f|fo|for|fore|foreg|foregr|foregro|foregrou|foregroun|foreground$
答案 0 :(得分:5)
你的正则表达式是不正确的;你需要通过使用一组(最好是非捕获)来限制交替的范围:
^(?:f|fo|for|fore|foreg|foregr|foregro|foregrou|foregroun|foreground)$
这已经很简单了;另一种选择(如果您认为上述正则表达式违反DRY原则)将是
^(?:f(?:o(?:r(?:e(?:g(?:r(?:o(?:u(?:n(?:d)?)?)?)?)?)?)?)?)?)$