加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式的用法及其扩展

发布时间:2020-12-14 02:26:36 所属栏目:百科 来源:网络整理
导读:正 则表达式( REGular EXPression REGEXP )是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合,组成的一个“规则字符串”,这个“规范字符串”用来表达对字符串的一种过滤逻辑。通过正则表达式,我们可以从字符串中获

则表达式(REGular EXPression REGEXP)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合,组成的一个“规则字符串”,这个“规范字符串”用来表达对字符串的一种过滤逻辑。通过正则表达式,我们可以从字符串中获取我们想要的特定部分。

正则表达式的主要特点:

1、 灵活性、逻辑性和功能性非常的强;

2、 可以迅速地用极简单的方式达到字符串的复杂控制。

3、 对于刚接触的人来说,比较晦涩难懂;可一但掌握并熟练应用后,可以发现它的强大之处

由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,大小编辑器都可以使用它来处理文本内容。在下文主要讲的是它在linux中的应用技巧

基本正则表达式:Basic

模式:grep[options]PATTERN[FILE…]

-i:不区分字母大小写

--color:把符合条件的用颜色显示出来

-v:显示没有被模式匹配到的字符串

-o:只显示被模式匹配到的字符串

-n:输出行号

-E:使用扩展正则表达式

-A#:这一行后的#行都显示出来

-B#:这一行前#行都显示出来

-C#:前后#行都显示出来

{n,m}:连续nm个的“前一个字符”

元字符:

.:匹配任意单个字符

[]:匹配指定范围内的任意单个字符

[^]匹配指定范围外的任意单个字符

字符集合:[:space:]空白字符、[:digit:]数字、[:lower:]小写字母、[:alnum:]数字和大写字母、等。可以使用 #man 7 glob来查看具体的各个命令(参看上文)

例如:(#[root@localhost`]#

1、搜索特定的字符 # grep ‘root’ /var/log/secure

/var/log/secure这个文件中有root的那一行显示出来

2、反向选择 #grep –v ‘root’ /etc/passwd

3、锚定行首 #grep ‘^root’ /etc.passwd

显示出以root开头的行

4、 限定连续重复字段范围 #grep ‘‘o(2)’’ /etc/passwd

找到两个o的字符串

5、 显示/etc/inittan中以#开头,并且后面跟一个或多个空白字符,而后又跟了非空白字符的行 grep ‘^#[[:space:]]{1,}[^[:space:]]’ /etc/inittab

6、 取出默认shell/sbin/nologin用户列表

grep ‘nologin$’ /etc/passwd | cut –d: -f1 (此条命令用到了管道、cut命令、等)

扩展正则表达式:Extended 大部分用法及命令都与正则表达式相同

Grep –E=egrp

特殊字符的使用:

+ :匹配其前面的字符至少一次

?:“0个或1个”字符

| :用或的方式找出这个符合的字符串

Eg: C|cat: Ccat

(Cc)at: Cat cat

():找出“用户组”字符串

次数匹配:

*:匹配其前面的字符任意次

.*:任意长度的任意字符

? :匹配前面的字符0次或1

位置锚定字符:

^:锚定行首,此字符后面的任意内容必须出现在行首

$:锚定行尾,此字符前面的任意次内容必须出现在行尾

^$:空白行

&;b:锚定行首,其前面的任意字符必须作为单词首部出现

&; b:锚定行尾,其后面的任意字符必须作为单词尾部出现

&;root&;:必须是单词

其他的关于正则表达式的还有很多命令就不一一展示了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读