npm nlf - 之后提取版本号(使用 RegEx)

npm nlf - extracting version numbers out afterwards (using RegEx)

我一直在尝试使用很棒的包 nlf 来创建许可证列表

但想从它生成的大量列表中删除特定版本号

我刚刚开始学习 RegEx 并且到目前为止得到了这个表达式

\b[^\w]@*[\d.]\b

不过好像也抢进了license版本号..

我只想取出@和space之间的数字。

这是一些示例文本

jsesc@1.3.0 [license(s): MIT]
package.json:  MIT

json-schema@0.2.3 [license(s): AFLv2.1, AFLv2.1/BSD, BSD]
package.json:  AFLv2.1, AFLv2.1/BSD, BSD
readme files: BSD

json-schema-traverse@0.3.1 [license(s): MIT]
package.json:  MIT
license files: MIT

json-stable-stringify@1.0.1 [license(s): MIT]
package.json:  MIT
license files: MIT
readme files: MIT

json-stringify-safe@5.0.1 [license(s): ISC]
package.json:  ISC
license files: ISC

json5@0.4.0 [license(s): MIT]
package.json:  MIT
readme files: MIT

json5@0.5.1 [license(s): MIT]
package.json:  MIT
license files: MIT

仅供参考:如果重要的话,我正在使用 Atom..

您的正则表达式无法按预期工作,因为 @\b[^\w] 匹配(任何以单词 char 开头的非单词字符)并且 @* 模式不匹配任何., 并且 [\d.]\b 匹配一个

您可以使用

\b@[\d.]*\d

参见regex demo

详情

  • \b@ - @ 前面有任何字符字符(字母、数字或 _
  • [\d.]* - 0+ 位或.,越多越好
  • \d - 一个数字。