正则 表达式

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

@H_502_1@

grep : Global search REgular expression and Printout the line.

文本搜索工具。根据用户指定的文本模式(正则表达式元字符及正常字符组合而成)对目标文件进行逐行搜索显示能匹配到的行。

@H_502_1@ grep 命令:

@H_502_1@ grep [OPTIONS] PATTERN [FILE...]

@H_502_1@ --color[=WHEN](输出是把匹配到的字符是否标记@H_502_1@)

@H_502_1@ 参数如下:

@H_502_1@ auto

@H_502_1@ always

never

wKioL1UciU-xfCWIAACtfSxoyEE553.jpg

@H_502_1@ -o显示被匹配到的内容(特定环境需要)

例如:使用@H_502_1@echo命令输出一个绝对路径,使用@H_502_1@grep 取出基名。

@H_502_1@

[root@localhost /]# echo /etc/rc.d/init.d/functions | grep -o -E "[[:alnum:]]+/?$"

functions

@H_502_1@

@H_502_1@ -iignore(忽略@H_502_1@) 不区分字符大小写。(适用于单字符)

wKiom1UciBDzBH9iAABqSceIl1A450.jpg


@H_502_1@ -v 不能被模式匹配到的(反向选取)

@H_502_1@

wKiom1UciByygyj-AAFNYT63FHE274.jpg

@H_502_1@ -E 使用扩展的正则表达式

@H_502_1@

@H_502_1@ -A

@H_502_1@

wKioL1UciVTTYwmFAAFejs_-HPc206.jpg

@H_502_1@ -B

@H_502_1@

wKiom1UciBfRD4wSAAGToFYk6cc899.jpg

@H_502_1@ -C

@H_502_1@

wKioL1UciVbAXrmQAAI0E0MGRuw998.jpg

正则表达式(@H_502_1@REGEXP):元字符和正常字符所书写的模式。

@H_502_1@ 基本正则表达式:(@H_502_1@grep)

@H_502_1@ 扩展的正则表达式:@H_502_1@(egrep)

@H_502_1@ 元字符的功能:表达控制或统一匹配。

@H_502_1@ 元字符匹配:

@H_502_1@ . 匹配任意单个字符。(个数为一个)

@H_502_1@ [] 指定范围内的单个字符。

@H_502_1@ [^] 指定范围外的单个字符。

@H_502_1@ [[:digit:]] 数字@H_502_1@([:digit:]=[0-9])

@H_502_1@ [[:lower:]][[:upper:]] ,大@H_502_1@ 写字母

@H_502_1@ [[:space:]] 空白字符

@H_502_1@ [[:punct:]] 标点符号

@H_502_1@ [[:alnum:]] 所有的字母(包括大小写)和数字

@H_502_1@ [[:alpha:]] 所有字符(包括大小写)

@H_502_1@ [[::]]这里的@H_502_1@ :: 需要特特别注意,别打错了。不然命令行解释不了。

wKiom1UciBSzAyUxAAEDqUS7cgM841.jpg

@H_502_1@ 次数匹配:

@H_502_1@ * 任意长度(@H_502_1@0-无穷次)@H_502_1@

@H_502_1@ .* 组合表示任意长度任意字符@H_502_1@

@H_502_1@

wKioL1UciVGgr7xAAADfJRzZMAI504.jpg

@H_502_1@ \? 匹配前面字符@H_502_1@0-1次;

@H_502_1@ \+ 1次或多次

@H_502_1@ \{m\} m@H_502_1@

@H_502_1@ \{m,n\} 至少@H_502_1@m次,至多@H_502_1@n

@H_502_1@ \{0,n\} 至多@H_502_1@n

@H_502_1@ \{m,\} 至少@H_502_1@m

@H_502_1@

wKiom1UciBKhFkp2AACmG70cEKs682.jpg

@H_502_1@ 位置锚定(出现的位置):

@H_502_1@ ^ 行首

@H_502_1@

wKioL1UciVGye3B9AADXxFfk1e8622.jpg

@H_502_1@ $ 行尾@H_502_1@

@H_502_1@

wKiom1UciBOicEnDAACYu7CYkg8878.jpg

@H_502_1@ ^$ 连用可以匹配整行。

@H_502_1@

wKioL1UciVLQswyVAAB2p50RVPQ344.jpg

@H_502_1@ \< \b 匹配块首(字符串不包括空格字符)

@H_502_1@

wKiom1UciBPCg1g8AACqJ9NTRe0429.jpg

@H_502_1@ \> \b 匹配块尾@H_502_1@

@H_502_1@

wKioL1UciVKADu5gAAFHjai1IJ8442.jpg

@H_502_1@ \< \> \b \b 整块匹配

例子:@H_502_1@ifconfig命令后,匹配出现一次或两次的数字@H_502_1@ @H_502_1@

wKiom1UciBSzAyUxAAEDqUS7cgM841.jpg

@H_502_1@ 分组:@H_502_1@\(\)

@H_502_1@ 注意:分组中的模式,在某次的具体匹配过程中的所匹配的字符,可以被@H_502_1@grep 记忆(保存于内置的变量中),还可以被引用。

@H_502_1@ \1:引用,模式中自左而右,由第一个左括号以及与之对应的右括号中的模式所匹配到的内容

@H_502_1@

wKioL1UciWnCgdGUAAFtvsyqjbU019.jpg

@H_502_1@ \2:引用,模式中自左而右,由第二个左括号以及与之对应的右括号中的模式所匹配到的内容

@H_502_1@

扩展的正则表达式:@H_502_1@(表现形式不同,意义都一样。只是有些不用@H_502_1@ \ )

@H_502_1@ 字符匹配:

@H_502_1@ . 匹配任意单个字符。(个数为一个)

@H_502_1@ [] 指定范围内的单个字符。

@H_502_1@ [^] 指定范围外的单个字符。

@H_502_1@ [[:digit:]] 数字@H_502_1@([:digit:]=[0-9])

@H_502_1@ [[:lower:]][[:upper:]] ,大@H_502_1@ 写字母

@H_502_1@ [[:space:]] 空白字符

@H_502_1@ [[:punct:]] 标点符号

@H_502_1@ [[:alnum:]] 所有的字母(包括大小写)和数字

@H_502_1@ [[:alpha:]] 所有字符(包括大小写)

@H_502_1@ 次数匹配:

@H_502_1@ * 任意长度(@H_502_1@0-无穷次)

@H_502_1@ ? 匹配前面字符@H_502_1@0-1次;

@H_502_1@ + 1次或多次

@H_502_1@ {m} m@H_502_1@

@H_502_1@ {m,n} 至少@H_502_1@m次,至多@H_502_1@n

@H_502_1@ {0,n} 至多@H_502_1@n

@H_502_1@ {m,} 至少@H_502_1@m

@H_502_1@ 位置锚定(出现的位置):

@H_502_1@ ^

@H_502_1@ $

@H_502_1@ \< \b (唯一grep egrep \ 没变的)

\> \b(唯一grep egrep \ 没变的)

@H_502_1@ 分组:

@H_502_1@ ()

@H_502_1@ 引用:@H_502_1@\1,\2,.....



@H_502_1@ 或者:

@H_502_1@ a|b

@H_502_1@

wKioL1UciWXBxpmcAAEdxxl-uWo278.jpg

例子:找出@H_502_1@ifconfig命令结果中的@H_502_1@1-255之间的数字。

[root@localhost /]# ifconfig | grep -E "\b([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|25[0-5])\b"

eth0 Link encap:Ethernet HWaddr 00:0C:29:79:E3:14

inet addr:172.16.249.71 Bcast:172.16.255.255 Mask:255.255.0.0

inet6 addr: fe80::20c:29ff:fe79:e314/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX bytes:7696098 (7.3 MiB) TX bytes:1477862 (1.4 MiB)

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 Metric:1

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

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