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