1、正则表达式的使用

正则表达式,又称规则表达式。在代码中常简写为 regex、regexp 或 RE),计算机科学的一个观点。正则表达式通常被用来检索、替换那些相符某个模式(规则)的文本,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出相符某个条件的子串等。

组织正则表达式的方式和建立数学表达式的方式一样。也就是用多种元字符与运算符可以将小的表达式连系在一起来建立更大的表达式。正则表达式的组件可以是单个的字符、字符聚集、字符局限、字符间的选择或者所有这些组件的随便组合。正则表达式是由通俗字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式形貌在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串举行匹配。

1、Shell 正则表达式的组成

1)通俗字符

通俗字符包罗没有显式指定为元字符的所有可打印和不能打印字符。这包罗所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

字符

寄义

[abc]

匹配 [...] 中的所有字符,例如 [se] 匹配字符串 "test shell" 中所有的 s e字母

[^abc]

匹配除了 [...] 中的其他字符例如 [^se] 匹配字符串 "test shell" 中 s e的字母

[A-Z]

[A-Z] 示意一个区间,匹配所有大写字母,[a-z] 示意所有小写字母

[\s\S]

匹配所有。\s 是匹配所有空缺符,包罗换行,\S 非空缺符,包罗换行

\w

匹配字母、数字、下划线。等价于 [A-Za-z0-9]

2)非打印字符

字符

寄义

\cx

匹配由x指明的控制字符。\cM 匹配一个ctrl-M或回车符。x的值必须为A-Z或a-z之一。

\f

匹配一个换页符。等价于 \x0c 和 \cL

\n

匹配一个换行符。等价于 \x0a 和 \cJ

\r

匹配一个回车符。等价于 \x0d 和 \cM

\s

匹配任何空缺字符,包罗空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]

\S

匹配任何非空缺字符。等价于 [^ \f\n\r\t\v]

\t

匹配一个制表符。等价于 \x09 和 \cI

\v

匹配一个垂直制表符。等价于 \x0b 和 \cK

3)特殊字符

字符

寄义

$

匹配字符串末端位置,使用\$,匹配$自己

()

,

以太坊高度

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,

符号一个子表达式的最先和竣事位置。要匹配这些字符,请使用 \( 和 \)

*

匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*

+

匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+

.

匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 

[

符号一其中括号表达式的最先。要匹配 [,请使用 \[。

?

匹配前面的子表达式零次或一次。要匹配 ? 字符,请使用 \?。

\

将下一个字符符号为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("

^

匹配输入字符串的最先位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,示意不匹配该方括号表达式中的字符聚集。要匹配^ 字符自己,请使用 \^

{

符号限定符表达式的最先。要匹配 {,请使用 \{。

|

指明两项之间的一个选择。要匹配 |,请使用 \|。

4)限定符

限定符用来指定正则表达式的一个给定组件必须要泛起多少次才气知足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种

字符

寄义

*

匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

+

匹配前面的子表达式一次或多次。'zo+'匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}

{n}

n 是一个非负整数。匹配确定的n次。'o{2}'不能匹配"Bob"中的'o',然则能匹配 "food" 中的两个 o

{n,}

n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 至少匹配o两次,不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。

{n,m}

m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

小我私家民众号: