使用以下beg_ere
模式,我如何(asmb)
用文字[
和括起来]
?
#!/usr/local/bin/awk -f
BEGIN {
beg_ere = "^[[:space:]]*([#;!]+|@c|//)[[:space:]]+(faml) [(asmb)]([[:space:]]*).*$"
}
$0 ~ beg_ere { print "MATCH" }
其中faml
和asmb
是用户定义的字符串,或者如果不是用户定义的,则由 描述"[[:graph:]]+"
。
在这种情况下
beg_ere = "^[[:space:]]*([#;!]+|@c|//)[[:space:]]+(faml) [([[:graph:]]+)]([[:space:]]*).*$"
当使用包含以下几行的文件时,我没有打印 MATCH
## HD [opcon]
## HD [opcon] key
## HD [opcon] akey,bkey
其中可以有任意数量的由逗号分隔的键。
答案1
你只需要用反斜杠转义它们即可。
但是,由于正则表达式位于双引号字符串中,因此需要转义反斜杠
beg_ere = "^[[:space:]]*([#;!]+|@c|//)[[:space:]]+(HD) \\[([[:graph:]]+)\\]([[:space:]]*).*$"
# .....................................................^^^..............^^^