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

前端之家收集整理的这篇文章主要介绍了正则表达式的用法及其扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

则表达式(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\>:必须是单词

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

原文链接:https://www.f2er.com/regex/363135.html

猜你在找的正则表达式相关文章