模式重复和正则表达式

Mar*_*ari 1 regular-expression

拿图案

[UGLER]*
Run Code Online (Sandbox Code Playgroud)

字符串 UUG 可以匹配它吗?我的意思是说,允许重复吗?

ter*_*don 5

原则上是的,但这可能取决于您使用的正则表达式风格。至少,BREEREPCRE都将匹配该字符串。该表达式[UGLER]*表示匹配 U、G、L、E 或 R 集中的 0 个或多个连续字符

您可以轻松地针对不同的正则表达式类型对此进行测试:

当然,由于您正在寻找零个或多个,它也会匹配您可能不期望的东西:

$echo "foobar" | grep  '[UGLER]*'
foobar
Run Code Online (Sandbox Code Playgroud)

如果您使用的正则表达式支持它,请使用+代替*。例如,使用 PCRE:

 $echo -e "UUG\nfoobar" | grep -P '[UGLER]*'
 UUG
 foobar
 $echo -e "UUG\nfoobar" | grep -P '[UGLER]+'
 UUG
Run Code Online (Sandbox Code Playgroud)