[英]Javascript Regex: Strip path until last occurence in a capturing group
[英]Regex capturing group only capturing last occurence
這是我的輸入:
start
@var=somevar1
@var=somevar2
end
我正在使用這個正則表達式
start(?:\s*\n*(?:@var=(.*)\s*)*)\s*\n*end
它應該給出輸出為
somevar1
somevar2
但它只給 somevar2。
有沒有辦法獲得所有出現的捕獲組?
一種選擇是使用帶有 inifite 量詞的正向后視來斷言 start 后跟左側的換行符。
請參閱對lookbehinds的支持。
(?<=^start\n[^]*@var=)\S+(?=[^]*\nend$)
const regex = /(?<=^start\\n[^]*@var=)\\S+(?=[^]*\\nend$)/gm; const str = `start @var=somevar1 @var=somevar2 end`; let m; console.log(str.match(regex));
如果前后只能有@var=somevar 格式而不是其他內容:
(?<=^start\n\s*(?:@var=\S+\s+)*@var=)\S+(?=(?:\s*@var=\S+)*\s*\nend$)
查看另一個正則表達式演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.