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

求一段正则,匹配混合文本消息中夹杂的 QQ 号或微信号

  •  
  •   derpc · 2017-05-24 09:40:42 +08:00 via iPhone · 2536 次点击
    这是一个创建于 2771 天前的主题,其中的信息可能已经有所发展或是发生改变。
    做了一个社区系统,想要自动过滤帖子中发的 QQ 号微信号。目前想法是,把超过 4 位的字母数字全都转换为星号。新手实在编不出这种正则,谢谢各位了
    11 条回复    2017-05-24 19:26:03 +08:00
    wheeler
        1
    wheeler  
       2017-05-24 10:19:50 +08:00   ❤️ 1
    正则学得不好,这样行吗?

    import re

    s = """
    a:你的微信号是多少啊?
    b:wrjtir12,平时不用微信,加 Q 吧 1234567
    a:好的
    ""
    pattern = "[a-zA-Z0-9]{4,}"
    print(re.sub(pattern, lambda m: "*" * len(m.group()), s))
    kikyous
        2
    kikyous  
       2017-05-24 11:26:06 +08:00   ❤️ 1
    /\d{4,12}/
    954880786
        3
    954880786  
       2017-05-24 12:17:06 +08:00 via iPhone   ❤️ 1
    re.sub([a-zA-Z0-9]{4,}, '******', text)
    jtsai
        4
    jtsai  
       2017-05-24 13:06:27 +08:00   ❤️ 1
    /[a-zA-Z0-9]{4,}/.test('11aa') // true
    jtsai
        5
    jtsai  
       2017-05-24 13:07:28 +08:00   ❤️ 1
    /[a-zA-Z]{4,}|\d{4,}/.test('11aa') // false
    /[a-zA-Z]{4,}|\d{4,}/.test('1111') // true
    geelaw
        6
    geelaw  
       2017-05-24 13:16:49 +08:00   ❤️ 1
    This ****** is ****** poor.

    This choice is really poor.

    另外识别可能的 QQ 号难道不是 \d{5,15} 之类的么?不过值得注意的是 \d 不是 [0-9],它还会匹配其他 Unicode 规定为数字的字符。另外这样并不能屏蔽 一〇〇〇〇 这种汉字书写的方式。

    不要尝试用这种蹩脚的方案,意外会很多的。
    chairuosen
        7
    chairuosen  
       2017-05-24 13:28:58 +08:00   ❤️ 1
    微信号不是可以英文么?难道英文单词都屏蔽?
    derpc
        8
    derpc  
    OP
       2017-05-24 13:37:56 +08:00
    谢谢楼上各位哈,已经用上大家传授的表达式测试成功啦

    @chairuosen 目前社区讨论主题单一,出现长串字符都是微信号,只是对游客保密的哈。

    谢谢各位
    dallaslu
        9
    dallaslu  
       2017-05-24 14:16:04 +08:00
    @derpc 听起来不像什么绿色社区……
    dodaddy
        10
    dodaddy  
       2017-05-24 16:40:38 +08:00 via Android
    这样没用,现在留 QQ 也不是纯数字
    derpc
        11
    derpc  
    OP
       2017-05-24 19:26:03 +08:00
    @dallaslu 校园二手
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5337 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 05:50 · PVG 13:50 · LAX 21:50 · JFK 00:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.