【问题标题】:Split a string after two characters with regular expressions使用正则表达式在两个字符后拆分字符串
【发布时间】:2021-08-03 06:04:08
【问题描述】:

我试图在“&”和“:”之后分割一个字符串。字符串格式如下:

Public Protection & Housing Authority: $100,000,000.

在 Javascript 中,我使用.split(/(?=[:&]+)/g),它会破坏&: 之前的字符串。我怎样才能让它在每个字符之后中断?

【问题讨论】:

  • 您可以尝试/((.+?)&)((.+?):)/ 并检查第 1 组和第 3 组。 regexr.com/63187
  • 预期输出:公共保护 & |房屋委员会: | 100,000,000 美元。

标签: javascript regex string split


【解决方案1】:

你可以使用lookbehind让它在比赛结束后中断。

正则表达式:

/(?<=[:&])/g

查看我制作的示例:https://regex101.com/r/vi565o/1

【讨论】:

    【解决方案2】:

    +\w+ 应该可以解决问题。

    表示在is字符串匹配后包含字母。

    应该是-.split(/((&)+\w+)/g)

    【讨论】:

      【解决方案3】:

      实际上,您可以匹配最多包含这两个字符(如果存在)的字符串,或者最多匹配字符串的结尾:

      const s = 'Public Protection & Housing Authority: $100,000,000.';
      console.log(s.match(/[^&:]*[&:]?/g).filter(Boolean));

      g 标志使String#match 返回在字符串中找到的所有非重叠匹配。正则表达式匹配

      • [^&:]* - 除了&: 之外的零个或多个字符
      • [&:]? - 可选的 & 或冒号字符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-23
        相关资源
        最近更新 更多