zoukankan      html  css  js  c++  java
  • 正则表达式 (?<= 与 (?= 的区别

    (?=pattern)

    正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,

    也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,

    但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    (?<=pattern)

    反向肯定预查,与正向肯定预查类似,只是方向相反。例如,

    “(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。

    exp1(?!exp2):查找后面不是 exp2 的 exp1。

     (?<!exp2)exp1:查找前面不是 exp2 的 exp1。


    (?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,10} 

    (?=.*[0-9])
    任意字符串后有一数字
    (?=.*[a-z])
    任意字符串后有一小写字母
    (?=.*[A-Z])
    任意字符串后有一大写字母
    .{6,10}
    6-10位任意字符
    整个正则表示6-10位字符,必须同时包含数字,小写字母,大写字母。

  • 相关阅读:
    1
    最大子串
    线段树
    mybatis分页插件
    springmvc下载文件
    获“领跑衫”感言
    finnal 评论 II
    用户使用报告
    事后诸葛亮会议 (尸体解剖)
    final阶段成员贡献分
  • 原文地址:https://www.cnblogs.com/rainbow-1/p/14761046.html
Copyright © 2011-2022 走看看