我对正则表达式并不是特别强。基本上,我有以下字符串:
Showing 1-20 of 748 results.
我想提取"748"
,将其转换为数字,并将其用于比较。正如预期的那样,"Showing"
,"of"
和"results"
预计不会改变,但数字可以改变。我有几个解决方案。第一个是使用lookbehinds,但我不相信JS支持它们。第二个是做一个更直率的方法,也许使用match()
查找字符串中的所有数字,并将元素放在返回数组中的第三个索引处(应该是"748"
)。
有关最佳方法的任何想法吗?
答案 0 :(得分:1)
我会使用正则表达式:
Showing \d+-\d+ of (\d+) results\.
其中\d+
表示匹配1位或更多位数。您想要查找的数字周围的括号称为捕获组。
因此,如果搜索字符串位于str
中,则生成的JavaScript可能如下所示:
var resultsRe = /Showing \d+-\d+ of (\d+) results\./;
var numResults = resultsRe.exec(str);
console.log("There are " + numResults + " results.");
答案 1 :(得分:0)
对于一个简单的方法,您可以执行以下操作:
(\d+)\sresults
它只是在单词结果之前直接捕获整数。