【Linux从零开始】:正则表达式相关知识(5)

本文发布时间: 2019-Mar-22
1.语系对正则表达式的影响:    不同的语系对各种字母的编码顺序是不同的   例如 LANG=C 时 : 0 1 2 3 4... A B C...a b c...z      LANG=zh_CN时 : 0 1 2 3 4... A a B b C c...z   当我们写[A-Z]的时候,2种语系所囊括的字符是不同的,所以,写正则表达式之前一定要先确定语系噢。 2.为了避免语系不同所造成的编码问题,所以又一些特殊符号可以代表相对应的字符:特殊符号代表意义[:alnum]代表英文大小写字符以及数字: 0-9 A-Z a-z [:alpha]代表任何大小写字符: A-Z a-z[:digit]代表数字: 0-9[:lower]所有小写字符: a-z[:upper]所有大写字符: A-Z  3. 命令工具的使用:  1. grep:    -a : 将binary文件以text文件的方式查找数据;   -c : 计算找到 '查找字符串' 的次数;   -i : 忽略大小写;   -n : 顺便输出行号;   -v : 反向选择;   --color=auto : 将找到的关键字高亮(一般自动开启) 可以使用alias 来设定: alias grep='gerp --color=auto' (unalias来解除设置)   -A : 后面可加数字, 为after的意思,除了列出该行外,后续的n行也会列出    -B : 后面可加数字, 为before的意思,除了列出该行外,前面的n行也会列出 4.基础正则表达式字符:RE字符意义与范例^word意义:待查找字符串出现在行首范例:grep -n '^abc' temp.txtword$意义:待查找字符串出现在行尾范例: grep -n 'r$' temp.txt.意义:代表此位置一定有一个任意字符的字符范例: grep -n 'abc.abc' temp.txt\意义:转义字符,将特殊的符号的特殊意义去除范例: grep -n \' temp.txt 查找包含'的行*意义:重复零个或者多个符号前的字符范例: grep -n 'gg*' temp.txt 会查找出包含g,gg,ggg...的行[list]意义:包含RE中的一个字符(选择一个)范例: grep -n 'ab[12345] temp.txt 查找初包含ab1 ab2 ab3...的行[n1-n2]意义:[list]的特例范例:[A-Z] [0-9] 也可以使用[[:alnum]] [[:alpha]][^list]意义:不出现^后的字符注意:^符号在[]中表示不出现之后字符,在''中表示句首\{n,m\}意义:连续n到m个之前字符,m为无穷大的时候可以省略范例:grep -n 'go\{2,3\}' temp.txt 正则表达式当然是非常有用的,同时还有awk等几个工具也都非常方便,但由于最近也不怎么用的上,所以就先了解到这,之后需要再深入研究吧.


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2020-Jul-13 01:15am
栏目列表