正则表达式 Regular Expression

正则表达式 Regular Expression 简称Regex

Javascript中

         g(global)表示全局  i表示不区分大小写

         .可以匹配任何一个单位的字符

         []用于定义字符集合 ^取非

元字符   [\b]      Backspace键(退格)                            \n     换行符

                     \f           换页符                                           \r    回车符

                     \t           制表符(tab)                               \v    垂直制表符

                     \r\n       回车+换行 许多操作系统以此为行结束,Unix与Linux以\n作为行结束

                     \d         任何一个数字字符         [0-9]

                     \D         任何一个非数字字符     [^0-9]

                     \w         [a-zA-Z0-9_]

                     \W        [^a-zA-Z0-9_]

                     \s          [\f\n\r\t\v]      任一一个空白字符

                     \S         [^\f\n\r\t\v]   任一一个非空白字符

                     \xXX        XX:表示十六进制数

                     \0XX        XX:表示八进制数

POSIX字符类   javascript不支持

         [:alnum:]            [\w^_]

         [:upper:]            [A-Z]

         [:alpha:]             [a-zA-Z]

         [:blank:]             [ \t] 注意:这里包含空格

         [:xdigit:]             任何一个十六进制数     [a-fA-F0-9]

         [:cntrl:]               ASCII控制字符        0-31加上127

         [:digit:]               \d

         [:graph:]             [:print:]去除空格

         [:lower:]              [a-z]

         [:print:]               任何一个可打印字符

         [:punct:]              既不属于[:alnum:]也不属于[:cntrl:]的字符

         [:space:]               [\f\r\n\t\v ]  注意:这里包含空格

+ 一次或多次重复                          +? 懒惰型

* 零次或多次重复                            *? 懒惰型

? 零次或一次出现        

{n} 重复n次

{m,n} 至少m次,至多n次

{m,} 至少出现m次                         {m,}?  懒惰型

\b 一个单词的开头或结尾  b:boundary

\B 不匹配一个单词边界

^ 字符串开头    $ 字符串结尾

(?m) 置于开头,用于开启分行匹配模式  multline mode   注意:有的语言不支持

(xx)  子表达式,视为独立元素

回溯引用 backreference

\1,\2……\n  第1个表达式,第2个表达式…….第n个表达式

\0  代表整个正则表达式

替换模式下Javascript使用$代替\

         \E结束 \L或\U转换

         \l把下一个字符转换为小写

         \L把\L到\E之间全部转换为小写

         \u把下一个字符转换为大写

         \U把\U到\E之间全部转换为大写

注意:

1、  Java、Perl、PHP、.NET 支持向后查找

2、  Javascript、ColdFusion 不支持向后查找

向前查找:(?=x)   匹配但消费x,即结果不包括x   

         例 (?=:)   原字符串 https:     匹配结果 http

向后查找:(?<=x) 匹配但消费x,即结果不包括x

         例 (?<=\$)   原字符串 $400     匹配结果 400

注意:向前查找可以任意长度(可以使用.+)  向后查找的长度是固定的

         (?=)          正向前查找                    (?<=)         正向后查找

         (?!)            负向前查找                    (?<!)                   负向后查找

 

Mysql JAVA1.4不支持条件处理

(?(backreference)true-regex)

(?(backreference)true-regex|false-regex)

Backreference满足时,匹配true-regex 否则匹配false-regex


阅读更多
上一篇Python爬虫学习日记二 抓取
下一篇Maven学习与idea配置 初步
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭