可以說我有:
[Radius: 4000 mi.] -- 61362 -- Spring Valley, IL, US
目的是獲得:
Spring Valley, IL
我想用 RegEx 來實作這一點。當我嘗試時,(?<=--)(.*?)(?=\, US)我似乎無法取出第二組“--”。
uj5u.com熱心網友回復:
如果您愿意考慮使用非正則運算式方法,您可以在連字符和空格 (' -- ') 上拆分字串,獲取索引 2 處的元素(城市、州、國家/地區),然后用逗號拆分將結果限制為 2,然后用逗號重新加入,你就得到了你要找的東西。
比正則運算式方法更易于閱讀,并且代碼庫中的其他開發人員可能更容易理解正在發生的事情。
const s = '[Radius: 4000 mi.] -- 61362 -- Spring Valley, IL, US';
const cityState = s.split(' -- ')[2]?.split(',', 2).join(',');
console.log(cityState);
uj5u.com熱心網友回復:
你可以使用lookbehind,但在兩者之間你不應該--再次匹配
(?<= -- )(?:(?! --).)*(?=, US)
正則運算式演示
const s = `[Radius: 4000 mi.] -- 61362 -- Spring Valley, IL, US`;
const regex = /(?<= -- )(?:(?! --).)*(?=, US)/;
const m = s.match(regex);
if (m) console.log(m[0]);
您還可以使用捕獲組并根據需要進行匹配:
--\s \d \s --\s (.*?), US\b
正則運算式演示
const s = `[Radius: 4000 mi.] -- 61362 -- Spring Valley, IL, US`;
const regex = /--\s \d \s --\s (.*?), US\b/;
const m = s.match(regex);
if (m) console.log(m[1]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497042.html
標籤:javascript 正则表达式
