• 求一个正则表达式,字母不能重复


    不重复字母正则:

    ^(?:([A-Z])(?!.*?1))+$

    (刚开始我写的是^( ([A-Z])(?!1) )+$,发现不能匹配,

    原因是1是 第一个左括号的结果,应该是?:表示匹配exp,不捕获匹配的文本,也不给此分组分配组号。就匹配到

    其解释如下:
    (?:)是匹配括号以内的
    (?!)是负向预查,就是不匹配的意思。如"Windows (?!95|98|NT|2000)" 能匹配 "Windows 3.1" 中的 "Windows"
    ,但不能匹配 "Windows 2000" 中的 "Windows",因为里面使用了(?!95|98|NT|2000)即匹配的字符中包含了
    95,98,NT,2000都不能匹配
    .*?是非贪婪匹配任意字符,不包括换行的
    +是匹配1或多次
    1匹配的是([A-Z])匹配的内容
    ^是表达式开始
    $是结束

  • 相关阅读:
    P1006 传纸条
    P1387 最大正方形
    P1417 烹调方案
    P1052 过河
    P1063 能量项链
    P1736 创意吃鱼法
    P1156 垃圾陷阱
    P1220 关路灯
    @P1373 小a和uim之大逃离
    【leetcode】Interleaving String
  • 原文地址:https://www.cnblogs.com/youxin/p/3546657.html
Copyright © 2020-2023  润新知