正则表达式

一.正则表达式

    正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户清一达到查找,删除,替换某特定字符串的处理程序。

    正则表达式基本上是一种表示法,只要工具程序支持这种表示法,那么该工具程序就可以用来作为正则表达式的字符串处理之用。

 

二.语系对正则表达的影响

    由于不同语系编码数据并不相同,会造成数据选取结果的区别。所以,使用正则表达时,需要特别留意当时的语法环境为何,否则可能会发现与别人不相同的选取结果。而为了避免这些所造成的英文与数字的选取问题,就需要了解一些特殊符号

    特殊符号    代表意义

    [:alnum:]       代表英文大小写字符及数字,即0-9,A-Z,a-z

    [:alpha:]       代表任何英文大小写字符,即A-Z,a-z

    [:blank:]       代表空格健与Tab键

    [:cntrl:]       代表键盘上面的控制按键,即包括CR,LF,Tab,Del等

    [:digit:]       代表数字而已,即0-9

    [:graph:]       除了空格符外的其他所有按键

    [:lower:]       代表小写字符,即a-z

    [:print:]       代表任何可以被打印出来的字符

    [:punct:]       代表标点符号,即"'?!;:#$

    [:upper:]       代表大写字符,即A-Z

    [:space:]       任何会产生空白的字符,包括空格键CR等

    [:xdigit:]      代表十六进制的数字类型,因此包括0-9,A-F,a-f的数字与                  字符

 

三.grep的一些高级参数

grep

格式: grep [-acinv] [-A] [-B] '查找字符串' filename

-a:将binary文件以text文件的方式查找数据

-c:计算找到查找字符串的次数

-i:忽略大小写的不同

-n:输出行号

-v:反向选择

-A:后面可加数字,为after的意思,除了列出该行外,后续的n行也列出来

-B:后面可加数字,为befer的意思,除了列出该行外,前面的n行也列出来

 

基础正则表达式字符

RE字符

意义

^word

待查找字符串在行首

Word$

待查找字符串在行尾

.

以表一定有一个任意的字符

\

转义字符,将特殊符号的特殊意义去除

*

重复0到无穷多个的前一个字符

[list]

从字符集合的RE字符里面找出想要选取的字符

n1-n2

从字符集合的RE字符里面找出想要选取的字符范围

[^list]

从字符集合的RE字符里面找出不要的字符串或范围

\{n,m\}

连续n到m个的前一个RE字符,若为\{n\}则是连续n个的前一个RE字符,若为\{n,\}则是连续n个以上的前一个RE字符

 

 

 

四.sed工具

    sed 【-nefr】 【动作】

-n:使用安静模式,在一般的sed用法中,所有来自STDIN的数据一般都会被列到屏幕上,但如果加上-n参数后,则只有经过sed特殊处理的那一行才会被列出来

-e:直接在命令行模式上进行sed动作编辑

-f:直接将sed的动作写在一个文件内,-f filename则可以执行filename内的sed动作

-r:sed动作支持的是扩展型正则表达式的语法

-i:直接修改读取的文件内容,而不是由屏幕输出

动作说明: 【n1【,n2】】function

n1,n2:未必会存在,一般代表选择动作的行数,距离来说,如果我的动作时需要在10-20行之间进行的,则10,20【动作行为】

function有下面这些参数:

a:新增,a后面可接字符串,而这些字符串会在新的以行出现

c:替换,c后面可接字符串,这些字符串可以替换n1,n2之间的行

d:删除,因为时删除,所以d后面通常不接任何参数

i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现

p:打印,也就是将某个选择的数据打印出来,通常会与参数sed -n一起运行

s:替换,可以直接进行替换的工作。

 

 

扩展正则表达式

RE字符

意义与范例

+

重复一个或一个以上的前一个RE字符

?

零个或一个的前一个RE字符

|

用或的方式找出数个字符串

()

找出字符串

()+

多个重复组的判别

 

五.awk

    awk '条件类型1{动作1} 条件类型2{动作2}...' filename

awk主要是处理每一行的字段内的数据,而默认的字段的分隔符为空格键或Tab键。

posted @ 2019-01-17 20:37  正义的朋友  阅读(477)  评论(0编辑  收藏  举报