正则表达式的基本语法

本文摘自LTP.NET知识库。

正则表达式的形式通常以下:html

/love/

其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。正则表达式

用户只要把但愿查找匹配对象的模式内容放入“/”定界符之间便可。编程

为了可以使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。网络

所谓元字符就是指那些在正则表达式中具备特殊意义的专用字符,能够用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。code

较为经常使用的元字符包括: “+”, “*”,以及 “?”。 htm

其中, 对象

“+”元字符规定其前导字符必须在目标对象中连续出现一次或屡次,字符串

“*”元字符规定其前导字符必须在目标对象中出现零次或连续屡次,get

“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。博客

下面,就让咱们来看一下正则表达式元字符的具体应用。

/fo+/

由于上述正则表达式中包含“+”元字符,表示能够与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。

/eg*/

由于上述正则表达式中包含“*”元字符,表示能够与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。

/Wil?/

由于上述正则表达式中包含“?”元字符,表示能够与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

除了元字符以外,用户还能够精确指定模式在匹配对象中出现的频率。

例如,

/jim{2,6}/

上述正则表达式规定字符m能够在匹配对象中连续出现2-6次,所以,上述正则表达式能够同jimmy或jimmmmmy等字符串相匹配。

在对如何使用正则表达式有了初步了解以后,咱们来看一下其它几个重要的元字符的使用方式。

s:用于匹配单个空格符,包括tab键和换行符;

S:用于匹配除单个空格符以外的全部字符;

d:用于匹配从0到9的数字;

w:用于匹配字母,数字或下划线字符;

W:用于匹配全部与w不匹配的字符;

. :用于匹配除换行符以外的全部字符。

(说明:咱们能够把s和S以及w和W看做互为逆运算) 下面,咱们就经过实例看一下如何在正则表达式中使用上述元字符。

/\s+/

上述正则表达式能够用于匹配目标对象中的一个或多个空格字符。

/\d000/

若是咱们手中有一份复杂的财务报表,那么咱们能够经过上述正则表达式垂手可得的查找到全部总额达千元的款项。

除了以上所介绍的元字符以外,正则表达式中还具备另一种较为独特的专用字符,即定位符

定位符用于规定匹配模式在目标对象中的出现位置。

较为经常使用的定位符包括: “^”, “$”, “b” 以及 “B”。

其中,

“^”定位符规定匹配模式必须出如今目标字符串的开头,

“$”定位符规定匹配模式必须出如今目标对象的结尾,

b定位符规定匹配模式必须出如今目标字符串的开头或结尾的两个边界之一,

“B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界以内,即匹配对象既不能做为目标字符串的开头,也不能做为目标字符串的结尾。

一样,咱们也能够把“^”和“$”以及“b”和“B”看做是互为逆运算的两组定位符。

举例来讲:

/^hell/

由于上述正则表达式中包含“^”定位符,因此能够与目标对象中以 “hell”, “hello”或 “hellhound”开头的字符串相匹配。

/ar$/

由于上述正则表达式中包含“$”定位符,因此能够与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。

/\bbom/

由于上述正则表达式模式以“b”定位符开头,因此能够与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。

/man\b/

由于上述正则表达式模式以“b”定位符结尾,因此能够与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。

为了可以方便用户更加灵活的设定匹配模式,正则表达式容许使用者在匹配模式中指定某一个范围而不局限于具体的字符。

例如:

/[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。

这里须要提醒用户注意的一点就是能够在正则表达式中使用 “()” 把字符串组合在一块儿。

“()”符号包含的内容必须同时出如今目标对象中。

所以,上述正则表达式将没法与诸如 “abc”等的字符串匹配,由于“abc”中的最后一个字符为字母而非数字。

若是咱们但愿在正则表达式中实现相似编程逻辑中的“或”运算,在多个不一样的模式中任选一个进行匹配的话,可使用管道符 “|”。

例如:

/to|too|2/

上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。

正则表达式中还有一个较为经常使用的运算符,即否认符 “[^]”。

与咱们前文所介绍的定位符 “^” 不一样,否认符 “[^]”规定目标对象中不能存在模式中所规定的字符串。

例如:

/[^A-C]/

上述字符串将会与目标对象中除A,B,和C以外的任何字符相匹配。

通常来讲,当“^”出如今 “[]”内时就被视作否认运算符;而当“^”位于“[]”以外,或没有“[]”时,则应当被视作定位符。

最后,当用户须要在正则表达式的模式中加入元字符,并查找其匹配对象时,可使用转义符“”。

例如:

/Th\*/

上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。

本文来自 木庄网络博客> 正则表达式的基本语法
相关文章
相关标签/搜索