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

    /./g 任意字符 (包括空格,但是断行不会匹配)

    /w/g 字母数字下划线

    /W/g 非字母和数字下划线

    匹配数字:

    /d/g 匹配阿拉伯数字

    /D/g 匹配所有不是数字,包括空格

    匹配空白字符:

    /s/g 匹配空白字符:空格、制表符、断行等

    /S/g 匹配非空白字符


    字符集合:

    /[abc]/g

    /[a-z]/g

    /[e-o]/g

    /[0-9]/g


    /[u4e00-u9fa5]/g

    Unicode(所有中文) u4e00 十六进制0x4e00 graphemica.com" 一"-"龥"


    重复一次或多次:

    /[yY][oO]+/g

    重复零个或多个:

    /[yY][oO]+[!~.]*/g

    重复零个或一个:

    /[yY][oO]+p?[!~.]*/g

    指定重复范围(重复a到b次)

    /yo{1,4}/

    yoo
    yooo
    yoooo
    yooooooo

    要是我不想要匹配最后一行怎么办

    /yo{1,4}/g

    : word boundry 字符边界

    hoome

    list2

    list4

    PersonDW 0

    Person 0

    分组匹配—括号:

    /(.+)飞飞,(.+)追追/g
    李栓蛋飞飞,王花花追追

    $1 $2


    分组匹配但不捕获

    /1(?:37|38|82|83)d{4}(d{4})/g

    13712241000
    13822232000
    18289993000
    18398754000

    13112241000
    17722232000


    ?:的话就是分组但是不摘出来

    $1

    正向(肯定)预查(?=模式)

    后面肯定有这个字符,但是不匹配他

    100元
    1000元
    100刀
    100镑

    选中所有以元结尾的数字,不包括元

    /d+(?=元)/g

    /d+(?!元)/g 正向否定预查(?!模式)

    匹配所有后面不是"元"的数字

    匹配出了:
    10
    100
    100
    100

    /d+(?!元|d)/g

    匹配所有后面不是元或者数字 的数字

    100
    100

    反向(肯定)预查:

    ¥100
    ¥1000
    $100
    #100

    /(?<=¥)d+/g
    100
    1000


    反向(否定)预查:

    /(?<!¥|d)d+/g
    100
    100

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

     

    正则表达式中和s有什么区别

     

    字符串:abcsdsadas abc asdsadasdabcasdsa
    使用sabcs和abc都能匹配中间的abc,这种方法不是重复了么?

    不一样
    abc匹配的是"abc"
    sabcs匹配的不是"abc", 前后还带空格" abc "
    只是匹配字符串开头结尾及空格回车等的位置, 不会匹配空格符本身

    例如"abc sdsadasabcasdsadasdabcasdsa",
    sabcs不能匹配,abc可以匹配到"abc"
     
     
    代表字与字中间那个看不见的东西,如

    here is a word
    那么,这句中有好几个, 每个单词的前后都有一个.

    所以你用 here 可以匹配上面这个here,但如果here 不是一个单词,而是一个单词的一部分,如 adheread, 这样的话,用here 可以匹配,用here就不能区配了,因为ad后面没有. 所以 adhere 中的here 不会被匹配。

    总结:  就是用在你匹配整个单词的时候。 如果不是整个单词就不匹配。 你想匹配 I 的话,你知道,很多单词里都有I的,但我只想匹配I,就是“我”,这个时候用 I

    B就是反过来,代表非字间。 类似d代表数字, D代表非数字。

    2018 年10月29日 拾遗

    (pattern) 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“(”或“)”。

    (?:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。

    (?=pattern) 正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    (?!pattern) 正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

  • 相关阅读:
    android 如何添加第3方lib库到kernel中
    如何搭建modem编译环境
    /dev、/sys/dev 和/sys/devices 和udev的关系
    Makefile的obj-y 和 obj-m
    MTK Android添加驱动模块
    使用 /sys 文件系统访问 Linux 内核
    JNI设置C++与java的结合(2)
    android 常用方法集合
    操作系统(科普章节)
    前端面试之前要准备的那些事
  • 原文地址:https://www.cnblogs.com/eret9616/p/8798715.html
Copyright © 2011-2022 走看看