正则表达式Javascript用于在第一个特定字符

时间:2018-06-13 13:55:10

标签: javascript regex

我正在尝试在javascript中创建一个正则表达式,它与第一个“ - ”之前的字母数字字符串中的最后5个非连续数字相匹配,如此...

以这两个字符串为例:

7356CH18PRZ2506-01
45D18A234-02-01

对于上面的每个例子,匹配将是:

82506
18234

根据客户要求,我们使用最后5个数字在我们的应用程序中创建唯一标识符,它们必须是数字。

我只能提取连续的数字,因为在每个例子中第一个“ - ”之前没有连续5个数字,所以我的所有尝试都没有成功。

我可能还应该提到,我不是正则表达式的最佳人选。我涉猎。

如果有人能指出我正确的方向,我将不胜感激。

此外,如果需要,我很乐意详细说明我的问题。

1 个答案:

答案 0 :(得分:-1)

您可以使用df.replace(-np.Inf, np.nan)

的这种方法

match + replace

下面:

  • let arr = ['7356CH18PRZ2506-01', '45D18A234-02-01', '012-45D18A234-02-01', 'foobar']; let re = /^[^-]*((?:\d[^\d-]*){5})-/; for (i=0; i<arr.length; i++) { let m = arr[i].match(re); if (m) { console.log(arr[i], "=>", m[1].replace(/\D+/g, '')); } }内,我们使用正则表达式match匹配前5个数字,这些数字之间可能有0个或更多个非数字,后跟输入非常第一个连字符
  • 使用/^[^-]*((?:\d[^\d-]*){5})-/,我们只删除所有带空字符串的非数字。