正则表达式 某两个确定字符串之间任意的东西 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lixia625
V2EX    问与答

正则表达式 某两个确定字符串之间任意的东西

  •  
  •   lixia625 2014-11-10 17:00:38 +08:00 17739 次点击
    这是一个创建于 3987 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如AAxxxBB,我要拿到xxx;
    现在只知道AA(.*?)BB
    但这样貌似是匹配整一个AAxxxBB?
    啊好弱啊每次写正则表达式就只会自己在那瞎试,
    大家有什么好的学习方法吗?
    16 条回复    2017-02-07 17:25:36 +08:00
    iEverX
        1
    iEverX  
       2014-11-10 17:10:42 +08:00
    ()是个group,可以取到的
    python的话,m.group(1)就可以了
    wolong
        2
    wolong  
       2014-11-10 17:14:46 +08:00
    替换掉AA和BB就是中间的了
    lixia625
        3
    lixia625  
    OP
       2014-11-10 17:17:58 +08:00
    @iEverX
    java string.replaceAll呢?
    coofly
        4
    coofly  
       2014-11-10 17:22:26 +08:00
    可以使用前瞻否定式,不过你这种其实没必要,用1楼的方法就挺好
    besto
        5
    besto  
       2014-11-10 17:22:45 +08:00
    字符串都确定了,还需要正则么。。。直接substring啊(AA BB的长度自己算)
    lixia625
        6
    lixia625  
    OP
       2014-11-10 17:23:53 +08:00
    @besto 主要不是取出,是要替换,不更改原string
    besto
        7
    besto  
       2014-11-10 17:33:25 +08:00
    @lixia625
    建议还是把具体场景拿出来。
    halfelf
        8
    halfelf  
       2014-11-10 17:41:41 +08:00
    (?<=AA).*(?=BB)
    lixia625
        9
    lixia625  
    OP
       2014-11-10 18:05:57 +08:00
    @halfelf
    那个小于号是啥意思,测试了下似乎报错啊。
    (?=AA).*?(?=BB)这样测试了下拿到了AAxxx 好奇怪
    lululau
        10
    lululau  
       2014-11-10 18:07:50 +08:00   1
    ```
    s.replaceAll("(?<=AA).*?(?=BB)", "CCC");
    s.replaceAll("(AA).*?(BB)", "$1CCC$2");

    ```
    lixia625
        11
    lixia625  
    OP
       2014-11-10 18:19:28 +08:00
    @lululau
    nice!!
    干的漂亮
    Sunyanzi
        12
    Sunyanzi  
       2014-11-10 18:22:17 +08:00   1
    学习方法吗 ... /t/144987 供参考 ...
    lixia625
        13
    lixia625  
    OP
       2014-11-10 18:23:04 +08:00
    lushl9301
        14
    lushl9301  
       2014-11-10 21:59:44 +08:00
    我是用perl的,括号里面表示想要匹配后保留的(算是吧)
    perl用 $1 表示 = = (真是丧失 = =)
    hiddenman
        15
    hiddenman  
       2014-11-11 10:39:50 +08:00
    @lululau 零宽断言
    iimT
        16
    iimT  
       2017-02-07 17:25:36 +08:00
    js 的话用 match 方法 然后得到一个 array 其中 array[0]是包括 AA 与 BB 的 array[1]是不包括的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6093 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 03:08 PVG 11:08 LAX 20:08 JFK 23:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86