vim的正反向预查(以搜索为例):
#\v表示不用给元字符转义(就是括号之类的)
待查询文本:
1 win97 2 win98 3 win10 4 win7
5 97win 6 98win 7 10win 8 7win
#正向肯定预查,匹配字符串“win”后方为“98”和“7”的“win”,2号位和4号位的win将被匹配:
/\vwin(98|7)@=/g
#正向否定预查,匹配字符串“win”后方为“98”和“7”的“win”,1号位和3号位的win将被匹配:
/\vwin(98|7)@!/g
#反向肯定预查,匹配字符串“win”前方为“98”和“7”的“win”,6号位和8号位的win将被匹配:
/\v(98|7)@<=win/g
#反向否定预查,匹配字符串“win”前方非“98”和“7”的“win”,5号位和7号位的win将被匹配:
/\v(98|7)@<!win/g
#多情况匹配,1号位和4号位将被匹配:
\vwin(97|7)
#多情况匹配,5号位和8号位将被匹配:
\v(97|7)win
控制符匹配:
[\n] [\c0a] [\cJ]
[\r] [\c0d] [\cM]
[\t] [\c09] [\cl]
[\f] [\c0c] [\cL]
[\v] [\c0b] [\cK]
linux 的 grep :
grep "正则" "文件名"