2017-11-11 183 views
1

我一直在嘗試使用真棒包nlf創建許可證NPM NLF - 提取版本號出事後(使用正則表達式)

的名單,但想從它產生

大量的列表中刪除特定的版本號

我剛學正則表達式,得到了這個表達式到目前爲止

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

enter image description here

但它似乎搶到許可證版本號以及..

我只是想拿出@和空間之間的數字。

下面是一些示例文本

[email protected] [license(s): MIT] 
package.json: MIT 

[email protected] [license(s): AFLv2.1, AFLv2.1/BSD, BSD] 
package.json: AFLv2.1, AFLv2.1/BSD, BSD 
readme files: BSD 

[email protected] [license(s): MIT] 
package.json: MIT 
license files: MIT 

[email protected] [license(s): MIT] 
package.json: MIT 
license files: MIT 
readme files: MIT 

[email protected] [license(s): ISC] 
package.json: ISC 
license files: ISC 

[email protected] [license(s): MIT] 
package.json: MIT 
readme files: MIT 

[email protected] [license(s): MIT] 
package.json: MIT 
license files: MIT 

FYI:我使用的Atom如果它很重要..

+1

嘗試'\ b @ [\ d] * \ D' –

+0

沒有結果的Atom – Norfeldt

+0

好吧,看來在所有regex101發動機工作 - https://regex101.com/r/nGNhUq/1 –

回答

1

如預期,因爲@\b[^\w]匹配您正則表達式不工作(任何非字字符前面有一個字字符)和@*模式不匹配任何,並[\d.]\b匹配的

您可以使用

\[email protected][\d.]*\d 

請參閱regex demo

詳細

  • \[email protected] - 一個@其前面帶有任何字字符(字母,數字或_
  • [\d.]* - 0+數字或.,儘可能多的
  • \d - 一個數字。