V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Strikeactor
V2EX  ›  正则表达式

怎么使用正则表达式匹配不包含某种结构的单词?

  •  
  •   Strikeactor · 2015-08-17 13:13:04 +08:00 · 1557 次点击
    这是一个创建于 3168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前看有人推荐,试了下。做到这儿
    http://regex.alf.nu/4
    的时候卡住了,(\w )(\w )\2\1 可以把右边的结果全部匹配,但是找了好久也没找到对一个结构整体取非的方法,这道题的正确解题姿势是啥?

    5 条回复    2015-08-17 23:40:40 +08:00
    giskard
        1
    giskard  
       2015-08-17 15:46:27 +08:00
    ^(?!.*(\w )(\w )\2\1 ).*$

    这样好像可以
    Strikeactor
        2
    Strikeactor  
    OP
       2015-08-17 16:07:29 +08:00
    @giskard 所有的都匹配上了,你可以填到那个网站里试试
    要否定“任何一处都不存在这种结构”真的蛮头疼的。。
    giskard
        3
    giskard  
       2015-08-17 21:25:48 +08:00
    @Strikeactor 不要复制进去,手动敲一遍
    不知道为什么,复制进去不管用,但是手动敲进去有用
    https://pt.sjtu.edu.cn/picbucket/43325_143981785155.png
    Strikeactor
        4
    Strikeactor  
    OP
       2015-08-17 23:34:57 +08:00
    @giskard 卧槽,我再研究一下这个正则式。。
    先谢过了!
    giskard
        5
    giskard  
       2015-08-17 23:40:40 +08:00
    @Strikeactor 改进一点点,可以多得两分哦
    ^(?!.*(.)(.)\2\1 ).*$
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4982 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:39 · PVG 17:39 · LAX 02:39 · JFK 05:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.