zoukankan      html  css  js  c++  java
  • 正则表达式

    reference

    cnblog:正则表达式

    cnblog:正则表达式-贪婪与非贪婪匹配

    cnblog:python正则表达式指南

    cnblog:正则表达式 

    cnblog:正则表达式 w s d 

    runoob:正则表达式-元字符

    正则表达式用来定向选择某些内容,能省去不少手动选择的时间。比如我说我就比较常用notepad++来匹配字符串。对于一个正常的表达式总是应该包括两部分,操作内容与逻辑组件。比方说1+1=2这种,1就是操作数,是一个操作对象,+,=就是对操作数进行逻辑运算得到的结果。

    正则表达式的逻辑组件有以下几种:

    • {}:几种常见的用法:{n}表示匹配确定的n次,{n,}匹配至少n次,{n,m}匹配n~m次之间的次数。
    • []:匹配括号当中的任何一个字符。如果是26个字母当中的任何一个就可以用[a-z],如果包含大小的字母应该使用[a-zA-Z]。
    • ():就是一个范围,你可以用这个东西告诉匹配器你要匹配的是字符组还是单个字符,可以参见下面*的例子。
    • |:两个匹配条件进行或运算,比如说z|food就是要么是z要么是food。
    • ^:表示逻辑上取反。
    • *:匹配0或多个在它之前的子表达式,和通配符*差不多,可以针对字符或者字符组。字符组可以出现零次也可以出现多次,比如说zoo*(注:可以匹配到zooo,匹配不到zoozoo),和(zoo)*(注:可以匹配到zoozoo)。
    • +:同样匹配字符或者字符组,前面的字符或者字符组可以出现一次也可以出现多次。
    • ?:匹配前面的子表达式零次或一次,其余特性与上面差不多。因为匹配次数相对较少,所以也被称为非贪婪匹配。在这种情况下,一般使用a.*?b这种格式。举个例子这个匹配式可以在aabab中匹配到aab和ab。

    与位置相关

    • ^:匹配一行的开始,比如说 ^zoo会匹配以zoo开始一行的情况;
    • $:匹配行尾,注意用法是zoo$,匹配一行的结束;
    • A:仅匹配字符串开头;
    • :仅匹配字符串末尾;
    • :代表单次的开头或者结尾,一般表示w与W之间的那个隐藏的位置。
    • (?=pattern):正向肯定预查,Windows(?=95|98|NT|2000)"能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
    • (?!pattern):正向否定预查,例如"Windows(?!95|98|NT|2000)"能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
    • (?<=pattern):反向(look behind)肯定预查,(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。

    操作数组件主要是各种通配符,主要的意义广泛的通配符有以下几种:

    • d:代表十进制的数字,等价于[0-9]
    • D:匹配非数字,等于 [^0-9]
    • s:代表换行,Tab或者空格
    • S:代表非空白字符,也就是上面的字符取反
    • w:匹配大小写字母,数字或者下划线或者汉字(匹配汉字可能会出现问题)。
    • W:匹配w之外的字符。
  • 相关阅读:
    spin_count
    not in改写关联无需考虑重复数据
    substr函数
    Flex样式-ToolTip篇
    Flex样式-ProgressBar篇
    Flex样式-MenuBar篇
    Flex样式-DataGrid篇
    Flex样式-ColorPicker篇
    FireBug之Console命令大全
    Flex样式-VSlider篇
  • 原文地址:https://www.cnblogs.com/lafiizh/p/13034765.html
Copyright © 2011-2022 走看看