将模式附加到预先存在的正则表达式

将模式附加到预先存在的正则表达式

我有这个正则表达式,允许空格后跟可见字符

[[:space:]][[:graph:]]+$

ptrn我如何构建某种模式或相同模式ptrn加上上面的附加模式的可能性?

答案1

Awk 使用 POSIX扩展正则表达式,因此您可以用其?作为量词来表示上述模式的零次或一次出现:

$ printf '%s\n' 'ptrn' 'foo bar' 'ptrn bar' | awk '/ptrn([[:space:]][[:graph:]]+)?$/'
ptrn
ptrn bar

在 GNU awk 中gawk你也可以使用{n,m}量词:

$ printf '%s\n' 'ptrn' 'foo bar' 'ptrn bar' | gawk '/ptrn([[:space:]][[:graph:]]+){0,1}$/'
ptrn
ptrn bar

相关内容