V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
EminemW
V2EX  ›  问与答

大佬们,问个正则

  •  
  •   EminemW · 2020-08-11 21:01:35 +08:00 via iPhone · 1630 次点击
    这是一个创建于 1594 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要满足以下两个条件,只过一遍正则,有可能实现吗 1.字母数字组合超过 5 位 2.纯数字超过 5 位

    20 条回复    2020-08-12 00:25:40 +08:00
    teawithlife
        1
    teawithlife  
       2020-08-11 21:27:16 +08:00
    虽然我很想试着帮你,但是奈何看不懂你的要求。。。
    EminemW
        2
    EminemW  
    OP
       2020-08-11 21:38:47 +08:00 via iPhone
    @teawithlife 要匹配 字母数字或者纯数字 超过 5 位
    oneisall8955
        3
    oneisall8955  
       2020-08-11 21:48:18 +08:00 via Android
    加个或条件?
    kokutou
        4
    kokutou  
       2020-08-11 21:52:44 +08:00 via Android
    |
    wunonglin
        5
    wunonglin  
       2020-08-11 21:55:48 +08:00
    if else
    Keanuo
        6
    Keanuo  
       2020-08-11 21:56:01 +08:00
    /^[\da-zA-Z]{5,}$/
    Keanuo
        7
    Keanuo  
       2020-08-11 21:57:26 +08:00
    试试这个吧 /^[\da-zA-Z]{5,}$/
    xiandao7997
        8
    xiandao7997  
       2020-08-11 22:00:08 +08:00 via iPhone
    满足 1 就行了吧,2 是 1 的子集,7 楼的应该可以
    lululau
        9
    lululau  
       2020-08-11 22:01:29 +08:00
    @Keanuo 你这个应该会匹配到 “12345” 这样没有超过 5 位的,花括号里的 5 应该改成 6 才对
    Keanuo
        10
    Keanuo  
       2020-08-11 22:24:52 +08:00
    @lululau 啊确实 刚才写的时候想着是大于等于来着😂
    LifStge
        11
    LifStge  
       2020-08-11 22:26:54 +08:00
    @EminemW 楼主的描述 是不是还有排除纯字母的需求呢
    @xiandao7997
    Keanuo
        12
    Keanuo  
       2020-08-11 22:44:19 +08:00
    @LifStge
    /^(?=.*[\d]+)([a-zA-Z0-9]{6,})|([\d]{6,})$/
    排除纯字母的话,这个应该可以
    lululau
        13
    lululau  
       2020-08-11 22:46:02 +08:00   ❤️ 1
    /^(?!^[a-zA-Z]+$)[\da-zA-Z]{6,}$/
    Keanuo
        14
    Keanuo  
       2020-08-11 22:47:51 +08:00
    @lululau 哈哈你这个才是正解
    EminemW
        15
    EminemW  
    OP
       2020-08-11 23:29:29 +08:00
    @Keanuo #12 这个没办法提取这个例子中的 字母数字组合 "这是我的 xxx 东西 sq1234556789"
    Keanuo
        16
    Keanuo  
       2020-08-12 00:06:00 +08:00
    @EminemW 那你把开头符^和结尾符$删掉就行吧
    LifStge
        17
    LifStge  
       2020-08-12 00:08:31 +08:00
    @EminemW #15 你这个匹配 是要搜索 搜索的话 注意去掉正则表达式的 开头^ 结尾$ 认真去看看正在表达式的文档吧。。。 这个是基础
    EminemW
        18
    EminemW  
    OP
       2020-08-12 00:11:59 +08:00
    @LifStge #17 去掉之后又没有排除纯字母了
    LifStge
        19
    LifStge  
       2020-08-12 00:13:27 +08:00
    @EminemW 还有个重要的问题是 你需求表达的都不清楚。。。 真不确定前面几个 是否符合需求。。
    比如是否要排除纯字母 字母数字组合是哪种形式呢 比如几种情况 aaaa2222 2222aaaa 2aa2aa2 aa22aa2
    ...... 问问题也要表达清楚啊。。。
    LifStge
        20
    LifStge  
       2020-08-12 00:25:40 +08:00
    @EminemW 具体不清楚你的情况 #12 楼的 是没问题的 (?=.*[\d]+)([a-zA-Z0-9]{6,})|([\d]{6,}) 不知道你用啥测试的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:51 · PVG 03:51 · LAX 11:51 · JFK 14:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.