[英]Regular expression in javascript how to find content between two “special” characters?
[英]Regular Expression to find a group of strings between two characters
可以說我有:
[Radius: 4000 mi.] -- 61362 -- Spring Valley, IL, US
目的是獲得:
Spring Valley, IL
我想用 RegEx 來實現這一點。 當我嘗試(?<=--)(.*?)(?=\, US)
時,我似乎無法取出第二組“--”。
如果您願意考慮使用非正則表達式方法,您可以在連字符和空格 (' -- ') 上拆分字符串,獲取索引 2 處的元素(城市、州、國家/地區),然后用逗號拆分將結果限制為 2,然后用逗號重新加入,你就得到了你要找的東西。
比正則表達式方法更易於閱讀,並且代碼庫中的其他開發人員可能更容易理解正在發生的事情。
const s = '[Radius: 4000 mi.] -- 61362 -- Spring Valley, IL, US'; const cityState = s.split(' -- ')[2]?.split(',', 2).join(','); console.log(cityState);
您可以使用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]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.