Mar*_*ari 1 regular-expression
拿图案
[UGLER]*
Run Code Online (Sandbox Code Playgroud)
字符串 UUG 可以匹配它吗?我的意思是说,允许重复吗?
原则上是的,但这可能取决于您使用的正则表达式风格。至少,BRE、ERE和PCRE都将匹配该字符串。该表达式[UGLER]*表示匹配 U、G、L、E 或 R 集中的 0 个或多个连续字符。
您可以轻松地针对不同的正则表达式类型对此进行测试:
BRE
$ echo UUG | grep '[UGLER]*'
UUG
Run Code Online (Sandbox Code Playgroud)ERE
$ echo UUG | grep -E '[UGLER]*'
UUG
Run Code Online (Sandbox Code Playgroud)聚合酶链反应
$ echo UUG | grep -P '[UGLER]*'
UUG
Run Code Online (Sandbox Code Playgroud)当然,由于您正在寻找零个或多个,它也会匹配您可能不期望的东西:
$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)