正则表达式

提供了这样一种机制,我们可以用来从字符串中匹配特定字符串。如今规则表达式已经是一个ISO标准。

规则表达式是一种内容无关的语法。下面来解释它的一些基本操作符。

1、字符匹配操作符

.匹配任何一个字符,如".ord"可以匹配"lord","cord","2ord"等等。

[]匹配任何一个在中括弧中列出的字符。如"[a-z]ord"可以匹配"aord","bord","ford"等等。如果在[]中使用-,就表示某个范围,其前后两个字符号是范围的边界。要在字符类中匹配连字符,那么把连字符号作为第一个字符列出即可。

[^]匹配任何一个不在中括弧中列出的字符。如"[^ab]ord"可以匹配"cord","dord",但不能匹配"aord","bord"。

2、重复操作符

?匹配任何字符一次,如果这个字符号存在的话。如"?erd"可以匹配"erd","aerd","berd"等等。

*匹配声明的字符零到多次。如“n.*rd”可以匹配“nerd”,“nrd”,“neard”等等。

+匹配声明的字符至少一次。如“[n]+erd”可以匹配“nerd”,“nnerd”,但不能匹配“erd”。

{n}匹配声明的字符n次。如“[a-z]{2}erd”可以匹配“cherd”,“blerd”,etc。但不能匹配“nerd”,“erd”,“buzzerd”。

{n,}匹配声明的字符至少n次。如“.{2,}erd”可以匹配“cherd”and“buzzerd”,但不能匹配“nerd”。

{n,m}匹配声明的字符n到m次。如“n[e]{1,2}rd”可以匹配“nerd”and“neerd”。

3、定位操作符

^一行的开始位置

$一行的结束位置

<某个单词的开始位置

>某个单词的结束位置

某个单词的开始位置或者结束位置

B某个单词的中间位置

4、组合操作符

()表示()内是几个规则表达式的组合。如“([a]|[]b)erd"匹配"aerd","berd"。

5、交替操作符

|匹配|前后两组规则表达式。如“([a]|[b])erd"匹配"aerd","berd"。

6、保留字

以下这些字符在规则表达式语法中是有特殊意义的字符,不能被直接当字符来使用。这些字符被称为保留字。

^(carat)

。(period)

[(leftbracket}

](rightbracket}

$(dollarsign)

((leftparenthesis)

)(rightparenthesis)

|(pipe)

*(asterisk)

+(plussymbol)

?(questionmark)

{(leftcurlybracket,orleftbrace)

}(rightcurlybracket,orrightbrace)

ackslash

如果想使用保留字作为实际字符来使用,需要在该保留字前面加反斜线blackslash()

在一些unix工具中,一般用正斜杠slash(/)包围所描述的规则表达式,如[A-Z]+(abc|xyz)*/

某些规则表达式工具或某些语言中还定义了一些转义的字符,比如w代表空白字符,d代表数字,就相当于定义了[]和[0-9]的快捷方式。当使用具体大工具或语言的规则表达式时,要去了解这些特定的定义。

下面以Java中规则表达式为例,演示如何在Java中使用规则表达式。

1、匹配字符串是否

Pattern。mateches("[[0-9]{2}","00");#returntrue

Pattern。mateches("[[0-9]{2}","a00");#returnfalse

Pattern。mateches("[[a-z0-9]*","a00");#returntrue

原文地址:https://www.cnblogs.com/hjyxbfz/p/7526078.html