【问题标题】:Select string after word in JS regex在 JS 正则表达式中选择一个单词后的字符串
【发布时间】:2019-10-01 23:15:43
【问题描述】:

有没有办法在指定单词后面选择一个字符串?

我发现了许多如何使用经典正则表达式进行选择的示例:

(?<=^License:\W)(\w.*)$

...但是 JS 正则表达式不支持正则表达式。

我想匹配单词“License:”之后的字符串:

License: 1234-YXCMD-12XMDM-XXXCC

有什么解决办法吗?我想在http://integromat.com上使用它,它只支持JS regex格式。

【问题讨论】:

  • 通常支持捕获组:License:\s*(\S+)

标签: regex integromat


【解决方案1】:

这是来自 MDN 的一个很好的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Assertions#Types

所以你可以这样做:

let str = "License: 1234-YXCMD-12XMDM-XXXCC"
let regexp = /(?<=License: ).*/
console.log(str.match(regexp)[0]) // get 1234-YXCMD-12XMDM-XXXCC

编辑:这仅适用于最新版本的谷歌浏览器,正如@the Fourth Bird 所指出的那样

【讨论】:

  • ...but JS regex is not supporting positive look behind. 您的模式使用了积极的后向观察。
  • @Thefourthbird 这就是为什么我在那里有链接来证明 JS 实际上支持正面的看法
  • Javascript 没有广泛支持 Lookbehinds,例如参见 this pagethis page 但是正如 OP 提到的那样它不起作用,您的建议无助于解决问题,因为它包含一个积极的lookbehind .
  • 是的,你是对的。我使用 Firefox 尝试了上述正则表达式,但没有成功。似乎只有最新版本的 Chrome 支持它。我忘记了'^'的意思,所以我以为他们使用的是不同的正则表达式'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-02
  • 2021-05-16
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
相关资源
最近更新 更多