Em princípio, sim, mas pode depender do sabor da regex que você está usando. No mínimo, BRE , < href="http://www.boost.org/doc/libs/1_54_0/libs/regex/doc/html/boost_regex/syntax/basic_extended.html"> ERE e PCRE corresponderá a essa string. A expressão [UGLER]*
significa corresponde a 0 ou mais caracteres consecutivos do conjunto de U, G, L, E ou R .
Você pode testar isso para diferentes tipos de expressões regulares com bastante facilidade:
-
BRE
$ echo UUG | grep '[UGLER]*' UUG
-
ERE
$ echo UUG | grep -E '[UGLER]*' UUG
-
PCRE
$ echo UUG | grep -P '[UGLER]*' UUG
É claro que, como você está procurando zero ou mais, ele também corresponderá a coisas que talvez você não esteja esperando:
$echo "foobar" | grep '[UGLER]*'
foobar
Se o sabor de regex que você está usando suportar, use o +
em vez de *
. Por exemplo, com o PCRE:
$echo -e "UUG\nfoobar" | grep -P '[UGLER]*'
UUG
foobar
$echo -e "UUG\nfoobar" | grep -P '[UGLER]+'
UUG