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

js 正则匹配以某字符开始和结束的问题

  •  
  •   qnsh · 2018-02-07 16:01:24 +08:00 · 6352 次点击
    这是一个创建于 2284 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    现在需要正则表达式匹配以#或者 @开始并且以#或者 @结束的字符,例如#你好##234:wdwww#+@eeur_222@

    需要获取结果为你好,234:wdwww,eeur_222,求问如何实现。

    7 条回复  ?  2018-02-08 14:56:03 +08:00
    ZhLTE
        1
    ZhLTE  
       2018-02-07 16:06:27 +08:00
    ^/#/@[/S]+/#/@$
    songz
        2
    songz  
       2018-02-07 16:58:08 +08:00   ?? 1
    (?!#|@|\+)([\d\w\W])
    Biwood
        3
    Biwood  
       2018-02-07 17:18:26 +08:00   ?? 1
    (#|@)([^#@]+)\1

    需要二重匹配,一次搞不定
    noe132
        4
    noe132  
       2018-02-07 17:29:37 +08:00   ?? 1
    > '#你好##234:wdwww#+@eeur_222@'.match(/#(.+?)#|@(.+?)@/g)
    <?["#你好#", "#234:wdwww#", "@eeur_222@"]
    luoway
        5
    luoway  
       2018-02-07 17:35:37 +08:00   ?? 1
    Q1:正则表达式匹配以#或者 @开始并且以#或者 @结束的字符
    A1:str.replace(/^(?:#|@)(.*)(?:#|@)$/g, '$1')

    Q2:#你好##234:wdwww#+@eeur_222@ 需要获取结果为你好,234:wdwww,eeur_222,求问如何实现
    A2:str.replace(/[#+@]+/g, ',').replace(/^,(.*),$/g, '$1')
    songz
        6
    songz  
       2018-02-07 19:11:37 +08:00   ?? 1
    @songz #2
    @Biwood #3
    参考了 3 楼的,优化了下我自己的 2 楼,最终:
    (?!#|@|\+)([^#@]+)
    ZhLTE
        7
    ZhLTE  
       2018-02-08 14:56:03 +08:00   ?? 1
    没注意审题
    应该是(#|@)([^#@]+)\1 你需要的应该是 \2
    ..和三楼一致-。-
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1213 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:24 · PVG 02:24 · LAX 11:24 · JFK 14:24
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com