有没有可能从这个:
美国专利 6,570,557
检索 3 个组:
- 我们
- 专利
- 6570557(不带逗号)
到目前为止,我得到了:
(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})
并试图(?!,)
摆脱逗号然后我有效地摆脱了整个数字。
有没有可能从这个:
美国专利 6,570,557
检索 3 个组:
到目前为止,我得到了:
(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})
并试图(?!,)
摆脱逗号然后我有效地摆脱了整个数字。
尝试:
var input = 'US Patent 6,570,557',
matches = input.match(/^(\w+) (\w+) ([\d,]+)/),
code = matches[1],
name = matches[2],
numb = matches[3].replace(/,/g,'');
您可以使用 2 个简单的函数来代替使用正则表达式:
var str = "US Patent 6,570,557"; // Your input
var array = str.split(" "); // Separating each word
array[2] = array[2].replace(",", ""); // Removing commas
return array; // The output
这也应该更快。
匹配时不能忽略逗号,除非将数字匹配为三个单独的部分,然后将它们连接在一起。
最好从匹配结果中的数字中去除分隔符,使用String.replace
.
只需添加更多组,如下所示:
(US)(\s{1}Patent\s{1})(\d{1}),(\d{3}),(\d{3})
然后连接最后3组