V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
raighne
V2EX  ›  JavaScript

请教 js 中文正则表达式

  •  
  •   raighne · 2016-10-11 22:57:40 +08:00 · 2271 次点击
    这是一个创建于 2968 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何从“初三十班某某同学”中提取出某某来

    16 条回复    2016-10-12 12:49:09 +08:00
    jeremaihloo
        1
    jeremaihloo  
       2016-10-11 23:14:33 +08:00 via Android
    你这个题目发了 14 分钟,有 20 次点击,却没人回答的原因是你问题之前没有百度和谷歌过,并不是大家不会
    yoa1q7y
        2
    yoa1q7y  
       2016-10-11 23:17:48 +08:00   ❤️ 1
    raighne
        3
    raighne  
    OP
       2016-10-11 23:26:27 +08:00
    @yoa1q7y /[^初三十班(.+)同学$]{5}/ 这样优化了一下,多谢
    yoa1q7y
        4
    yoa1q7y  
       2016-10-11 23:32:25 +08:00
    @raighne 差点一口血喷在屏幕上,你自己试了么。。。
    正则里的这些字符感觉你完全没理解
    raighne
        5
    raighne  
    OP
       2016-10-11 23:47:31 +08:00
    @yoa1q7y 正在学正则表达式,我想限制下匹配长度,/[^初三十班(.+)同学]{5}/ 这样写打印出来确实是我需要的,我也迷糊了,明天把正则表达式好好看看
    sutra
        6
    sutra  
       2016-10-11 23:54:32 +08:00
    /初三十班(.+)同学 /.exec('初三十班某某同学')[1]
    "某某"
    an168bang521
        7
    an168bang521  
       2016-10-12 00:13:10 +08:00
    正则的一些知识点;感兴趣可以看一下,自己写岂不是更好;
    github 地址:
    https://github.com/Broszhu/zhuanbang-javascript-notes/tree/master/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
    upczww
        8
    upczww  
       2016-10-12 00:20:58 +08:00
    Python 版:
    import re
    re.search(pattern = r'初三十班(.+)同学', string = '初三十班某某同学').group(1)

    主要就是用到正则表达式里面用小括号分组。
    isCyan
        9
    isCyan  
       2016-10-12 01:17:53 +08:00 via Android   ❤️ 1
    你都知道有正则这么个东西了还来问,
    DiamondbacK
        10
    DiamondbacK  
       2016-10-12 01:53:11 +08:00
    @raighne 你这串正则就是正宗的瞎几把搞。
    xfspace
        11
    xfspace  
       2016-10-12 01:56:23 +08:00 via Android
    估计楼主下个问题就是,怎么把课程表美化。
    sneezry
        12
    sneezry  
       2016-10-12 08:12:59 +08:00 via Android
    用非贪婪模式试试吧,/初三十班(.+?)同学 /

    有时间还是学学正则,正则绝对是个有用的小工具,楼上说的都是为了楼主好
    sneezry
        13
    sneezry  
       2016-10-12 08:13:54 +08:00 via Android
    @sneezry 上面正则表达式里最后多了一个空格,用的时候记得删除掉
    araraloren
        14
    araraloren  
       2016-10-12 08:54:04 +08:00
    ~~自己还是做过尝试之后再把问题提出来,大部分人都不喜欢伸手党的

    say "初三十班某某同学同学" ~~ m:P5/初\w\w 班(\w+)同学 /;

    say "初三十班某某同学同学" ~~ m:P5/初\w\w 班(\w+?)同学 /;

    运行测试: http://ideone.com/2l3naY
    hxndg
        15
    hxndg  
       2016-10-12 09:28:31 +08:00
    @raighne = =看得我一头黑线。。。。
    7654
        16
    7654  
       2016-10-12 12:49:09 +08:00
    https://regexper.com/#/初三十班(.+)同学 /
    楼主这个网站可以用的到
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3196 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:05 · PVG 21:05 · LAX 05:05 · JFK 08:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.