Grep可以说是一个非常好用,而且经常使用的工具。
但是在使用的grep的时候,经常会遇到一些问题。
最近在进行数据的剔除,所以使用grep的正则表达式进行处理。
正则表达的规则如下:
() | 括号中是子正则表达式,也就是将子表达式组成一个组 |
+ | 前面的内容出现1次或者多次 |
{} | 这个括号有很多功能{a,b}表示前面内容出现a次到b次{a,}表示最少a次{a}表示出现a次{,b}表示最多b次 |
[] | 该括号的符号选择一个就算满足正则要求 |
^ | 该符号在[]出现时表示除[]内以外的符号,在最开始出现时表示以其后面的规则开头 |
其他的我也不多说了,可以自行去查阅。
我用的是ubuntu grep版本是2.25然后使用的时候出现了很奇怪的问题,比如加上+真的就匹配加号,而不是前面内容多次出现。
后来发现grep的正则表达式是要加上反斜杠才表示是正则表达式的符号,所以+ () 等等前面都要加上\ 但是[]却不用。
不得不说好像和普通的正则反了。但是至少这样能用了,所以如果大家有谁遇到类似的问题,正则规则无法识别的时候,试试在这些符号前面加上\。
全部评论