有人可以帮我理解以下的正则表达式吗?
egrep $'[^][0-9A-Za-z`~!@#$%^&*()_+=[{}|\\;:",.<>/? \'-]' testfile.txt
感谢。
答案 0 :(得分:0)
关注正则表达式
[^][0-9A-Za-z`~!@#$%^&*()_+=[{}|\\;:",.<>/? \'-]
装置
^
,因为在[]
之间,否则是行锚^
,所以它否定了集合。可以从字面上理解下一个字符]
。
这个表达是不明确的,取决于实现。
必须添加第一个右括号]
之前的反斜杠以修复歧义。
还有2个左括号[
。
它应该匹配任何包含不在指定集合中的字符的行:所以ascii字符在0到31之间,以及127.
检查 https://www.tutorialspoint.com/execute_bash_online.php 和复制
egrep $'[^][0-9A-Za-z`~!@#$%^&*()_+=[{}|\\;:",.<>/? \'-]'
最容易检查的是输入一个制表符,后跟一个可打印的charfor例如<tab>.
或一个非ascii字符,例如¤§