[英]Use Regex in JS to find a particular patten in a particular spot in a string
我對正則表達式不是特別堅強。 基本上,我有以下字符串:
Showing 1-20 of 748 results.
我想提取"748"
,將其轉換為數字,並將其用於比較。 正如預期的那樣, "Showing"
, "of"
"results"
和"results"
預計不會發生變化,但是數字可能會發生變化。 我有幾個解決方案。 首先是使用lookbehinds,但我不相信JS支持它們。 第二個是做一個更直截了當的方法,也許使用match()
查找字符串中的所有數字,然后將元素放在返回數組的第三個索引處(應該為"748"
)。
關於最佳方法的任何想法?
我會使用正則表達式:
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.");
對於簡單的方法,您可以執行以下操作:
(\d+)\sresults
它所做的只是在單詞結果之前立即捕獲整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.