正则表达式匹配不带逗号的整数

时间:2018-11-27 00:12:38

标签: javascript node.js regex

使用JavaScript和Node,我有一个文本文件,其内容如下:

             The First 1,000,000 Primes (from primes.utm.edu)

     2         3         5         7        11        13        17        19 

    23        29        31        37        41        43        47        53 

    59        61        67        71        73        79        83        89 

    97       101       103       107       109       113       127       131 

我已经阅读了文件内容,现在想匹配整数值,而忽略标题中带逗号的数字。我不允许编辑该文件。

我尝试了/\d+/,但得到了these matches

1 000 000 2 3 5 等等

我只想要整数质数。非常感谢。

2 个答案:

答案 0 :(得分:1)

您需要某种方法来确保匹配的数字以空格开头,然后是空格。您可以使用lookbehind进行此操作,尽管在许多环境中不支持它:

(?<= )\d+(?= )

https://regex101.com/r/dRaquW/4

不要向后看,而是 match 前导空格,然后捕获组中的数字:

\s(\d+)(?= )

https://regex101.com/r/dRaquW/5

答案 1 :(得分:1)

您可以断开行,扔掉第一行,然后应用正则表达式。像

var numbersString = fileTxt.split('\n').slice(1).join('\n');

然后在数字字符串上进行正则表达式

pd:已编辑,因为shift返回已删除的行,因此需要将其切片以成为一个单行纸