开篇,仍是得说说 ^ 和 $ 他们是别离用来婚配字符串的起头和完毕,以下别离举例申明:
"^The": 开头必然要有"The"字符串;
"of despair$": 结尾必然要有"of despair" 的字符串;
那么,
"^abc$": 就是要求以abc开头和以abc结尾的字符串,现实上是只要abc婚配。
"notice": 婚配包罗notice的字符串。
你能够看见若是你没有用我们提到的两个字符(最初一个例子),就是说 形式(正则表达式) 能够呈现在被查验字符串的任何处所,你没有把他锁定到两边。
接着,说说 '*', '+',和 '?',
他们用来暗示一个字符能够呈现的次数或者挨次。
他们别离暗示:
"zero or more"相当于{0,},
"one or more"相当于{1,},
"zero or one。"相当于{0,1}, 那里是一些例子:
"ab*": 和ab{0,}同义,婚配以a开头,后面能够接0个或者N个b构成的字符串("a", "ab", "abbb", 等);
"ab+": 和ab{1,}同义,同上条一样,但起码要有一个b存在 ("ab", "abbb", 等。
"ab?":和ab{0,1}同义,能够没有或者只要一个b;
"a?b+$": 婚配以一个或者0个a再加上一个以上的b结尾的字符串。
要点, '*', '+',和 '?'尽管它前面阿谁字符。
你也能够在大括号里面限造字符呈现的个数,好比
"ab{2}": 要求a后面必然要跟两个b(一个也不克不及少)("abb");
"ab{2,}": 要求a后面必然要有两个或者两个以上b(如"abb", "abbbb", 等。
"ab{3,5}": 要求a后面能够有2-5个b("abbb", "abbbb", or "abbbbb")。
如今我们把必然几个字符放到小括号里,好比:
"a(bc)*": 婚配 a 后面跟0个或者一个"bc";
"a(bc){1,5}": 一个到5个 "bc。
还有一个字符 '│', 相当于OR 操做:
"hi│hello": 婚配含有"hi" 或者 "hello" 的 字符串;
"(b│cd)ef": 婚配含有 "bef" 或者 "cdef"的字符串;
"(a│b)*c": 婚配含有如许多个(包罗0个)a或b,后面跟一个c的字符串;。