【问题标题】:Javascript Regex Match ListJavascript 正则表达式匹配列表
【发布时间】:2013-07-21 05:20:32
【问题描述】:

基本上我的正则表达式与此列表不匹配:

  1. Bling Boy's Raiment 3.5M+ Low BBR
  2. 冰冠2.5m大IC
  3. Darkheart 1.7M+ 平均 DH
  4. Rainbow Shaggy 1.3M+ 大 RS
  5. Illumina 1.1M+ 平均生病
  6. 末日说话者的蒙面兜帽 800K+ 平均不适用
  7. Azurewrath,虚空之王 750K+ 优秀 LoTV
  8. Sparkle Time Fedora 700K+ 惊人的 STF
  9. ): 欧元 180 700K+ 好欧元
  10. Robloxian 音乐视频金奖 650K+ 低 GRMVA
  11. ):红色研磨 600K+ 平均 RG
  12. Purple Sparkletime Fedora 500K+ 惊人的 PSTF

这是正则表达式:

/(\d+)(\.)((?: [a-z]+)+)\s+(\d+\w\+)\s+([a-z]+)\s+([a-z]+)/gi

是我看到问题所在的正则表达式,但我尝试将 \' 添加到它,但它仍然无法捕获:

  1. Bling Boy's Raiment 3.5M+ Low BBR

谁能帮忙?

【问题讨论】:

  • 您希望捕获如何准确工作?
  • 我希望它只捕获:Bling Boy's Raiment,3.5M,Low。 BBR 就是这样。

标签: javascript regex match


【解决方案1】:

这似乎应该可以工作:

/(\d+)(\.)([a-z’ ]+)\s+([\d.]+\w\+)\s+([a-z]+)\s+([a-z]+)/gi

我将((?: [a-z]+)+) 更改为([a-z’ ]+)——将空格放在字符集中可以避免非捕获组。我将后来的 \d+ 更改为 [\d.]+,这样它就可以识别像 3.5 这样的数字。

REGEXR Demo

【讨论】:

  • 如何在“): Red Grind 600K+ 平均 RG”中捕捉“(”和“)”
  • 将这些字符添加到[a-z’ ] 类
  • 字符串的那部分是否有任何不允许的字符?也许你应该只使用.+ 来允许任何事情。
  • 我解决了:/(\d+)(\.)([a-z0-9':)(, ]+)\s+([\d.]+\w\+) \s+([a-z]+)\s+([a-z]+)/gi
【解决方案2】:

你可以试试这个/\d+.+/ 换行

【讨论】:

  • 问题出在名称而不是“1”,“Bling Boy's Raiment”这个名称中有一个 ',因此无法捕捉到它。
【解决方案3】:

这种模式可能会满足您的需求:

(\d+\.)\s+(.+)\s+([\d\.]+\w\+)\s+(low|great|good|average|amazing)\s+([a-z]+)

http://regexr.com?35ld9

【讨论】:

    猜你喜欢
    • 2011-11-29
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 2011-02-19
    相关资源
    最近更新 更多