zoukankan      html  css  js  c++  java
  • 正则表达式练习 壹

    练习网站:Regex Golf (alf.nu)

    我太菜了,做到第十道题就觉得难了,说来惭愧,第十道都卡了好久。

    Warmup

    答案:foo

    思路:第一题没什么说的。

    Anchors

    答案:ick$

    思路:匹配结尾为ick的

    It never ends

    答案:u(?!.)

    思路:这道题不能使用$,所以换个写法,匹配u且u后面不包括其他任何字符

    Ranges 

    答案:[a-f]{4,}

    思路:就是直接匹配所有字符,并且都要在a-f这个范围

    Backrefs

    答案:(...).*\1

    思路:先匹配三个,然后在后面再匹配第一个标记

    Abba 

    答案:^(?!.*(.)(.)\2\1)

    思路:用(.)(.)匹配到前面两个,比如abba,他将会匹配到ab,然后\2\1就是ba,就匹配上了不需要匹配的,然后加上.*就可以匹配到整个不需要匹配的单词了,然后再用?!取反,现在需要匹配的就可以匹配上了,最后给里面的标记,匹配开头,就好了

    A man, a plan

    答案:^(.)(.).*\2\1$

    思路:这个其实就是第一位跟倒数第一位第二位跟倒数第二位相同的

    Prime 

    答案:^(?!(..+)\1+$)

    思路:这个的规律就是左边的都是单数右边的都是双数,匹配双数然后取反就好了

    Four 

    答案:(.).\1.*\1.\1

    思路:先匹配到xyx这种的,标记第一个的x,然后再匹配x.x就好了

    Order 

    答案:^.{5}[^e]?$

    思路:这个其实就是规律难找,我找了好久都没找到规律,然后后面发现了其实左边第二个字母在字母表中会在第一个字母后面,以此类推,这个实现有点难,就找第二个规律,就是先匹配5个,然后第六个不能是e,只能为空或者其他字符,同时第六个也是最后一位数

  • 相关阅读:
    Ubuntu 开机启动是出现 grub rescue 解决办法
    OpenvSwitch Port Mirror in OpenStack Neutron
    Protobuf 在Ubuntu 14上的编译与使用
    Linux screen 常用命令
    OpenStack/devstack with Neutron on Ubuntu 14 (1)
    osprofiler在openstack Cinder里的使用
    基于SSH协议的端口转发
    HA 技术简介
    Socket Receive数据一次性接收不全的问题
    【转】本文对C#虚函数virtual进行详解。
  • 原文地址:https://www.cnblogs.com/zhoulei0517/p/15797446.html
Copyright © 2011-2022 走看看