【问题标题】:Regex pattern for extraction of double-quoted and non-quoted strings Javascript用于提取双引号和非引号字符串Javascript的正则表达式模式
【发布时间】:2021-05-21 16:00:17
【问题描述】:

我拼命地试图从以下字符串中提取双引号和非引号单词(请注意周围的单引号):

'"Cloud Technology" Foundation "Board"'

所需的组是:

  1. “云技术”
  2. 基础
  3. “董事会”

我想出了这个模式(?:\"(.*?)\")|(?:\s(\S*?)\s) 看看regex101.com

但如果字符串是 '"Cloud Technology" Foundation',则该模式不起作用

【问题讨论】:

    标签: javascript regex regex-group


    【解决方案1】:

    你可以使用

    console.log(`'"Cloud Technology" Foundation "Board"'`.match(/"[^"]+"|[^\s']+/g))

    请参阅regex demo详情

    • "[^"]+" - ",除" 之外的零个或多个字符,然后是" 字符
    • | - 或
    • [^\s']+ - 除了空格和' 字符之外的一个或多个字符。

    【讨论】:

    • 非常感谢!这适用于双引号和非引号单词中的任意单词列表。唯一的缺点是在模式周围添加组没有按预期工作,但我可以使用完整匹配
    【解决方案2】:

    将添加到第二组字符' 作为额外的可能结束(或初学者):

    (?:\"(.*?)\")|(?:[\s\'](\S*?)[\s\'])

    【讨论】:

    • 这仅匹配 和
    • 是的。我知道了。谢谢反馈。昨天一定是在某种程度上禁食……但我相信我记得我已经测试过:-/
    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多