我想匹配正则表达式中方括号以外的字符。
正是我想匹配一些特殊字符而其他一些不匹配,因此我想指定它们
# grep $'[^a-zA-Z0-9#\\/:!<>{},=?. ()["_+;*\'&|$-]' file
这缺少一个
]
,我试过用 \]
转义, \\]
等等,我读到人们在 [^]
之外这样做,但我需要它!
最佳答案
放置 ]
紧接在 ^
之后.
这是一个例子。输入文件“foo”包含:
foo
[
bar
]
baz
quux
我们执行命令:
grep '[^][]' foo
输出是:
foo
bar
baz
quux
来自 bracket expressions in POSIX regular expressions 上的文档:
The right-bracket ( ']' ) shall lose its special meaning and represent itself in a bracket expression if it occurs first in the list (after an initial circumflex ( '^' ), if any).
并且:
The special characters '.', '*', '[', and '\' (period, asterisk, left-bracket, and backslash, respectively) shall lose their special meaning within a bracket expression.
关于regex - 如何在grep中转义方括号内的方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21635126/