正则表达式详解(一)正则表达式初步
2006-10-31 14:40 Ivony... 阅读(1434) 评论(8) 编辑 收藏 举报正则表达式详解(一)正则表达式初步 —— by Ivony... 转载请声明出处
先看一个最简单的捕获:
“a123b”
匹配:
“aaab12bb
可以用括号可以者强调符号的结合顺序,如正则表达式/(123)|(abc)/”捕获”
字符类:
正则表达式 /[abc]/ 捕获 ”a” 、”b” 或者 ”c”。
“^”
正则表达式 /[^abc]/ 捕获除了 ”a” 、 ”b” 和 ”c”
“-“
特殊的字符类:
\s = [ \f\n\r\t\v]
重复:
字符类的特殊构造:
正则表达式 /a{1,3}/表示/(a)|(aa)|(aaa)/,捕获”a”、”aa”或者”aaa”。
* = {0,
+ = {1,
重复可以与括号一起用,如:
正则表达式 /(abc){1,2}/捕获”abc”或者”abcabc”
零重复的作用:
(如数学中的3x5 = 1x5+2x5 ^_^)
断言:
任何两个合法的正则表达式并在一起的时候,在它们之间就形成断言。如正则表达式: /ab/ 是由正则表达式 /a/ 和 /b/ 并而组成的,在a和b之间就形成了断言。/ab/ 正则表达式中的 /a/ 只能捕获在字符 ”b” 前面的 ”a”,而 /b/ 也只能捕获字符 ”a” 后面的 ”b” 。
. = 任何字符(如果没有加SingleLine参数则不匹配”\n”)
正则表达式/ab(c?)/捕获”ab”或者”abc”。
以上所有的不包含无穷大重复的正则表达式都可以转化为只包含,或、并和括号的正则表达式。
零宽度(非捕获)断言符:
正则表达式 /abc$/捕获在字符串结尾处的abc,而忽略字符串中间任何的 ”abc”,如:
“$”断言此处一定是字符串的结尾,如:
“12
“12abcc”“
任何两个正则表达式放在一起就成了并,如 /a/ 是一个合法的正则表达式,它捕获 ”a” 字符, /b/ 也是一个合法的正则表达式,它捕获 ”b” 字符。/ab/ 这个正则表达式捕获连在一起的 ”ab”
“或”符号(“|”):
正则表达式 /123|a/ 捕获 ”
正则表达式 /123/ 捕获任意字符串中的 ”