簡體   English   中英

正則表達式一句話就能匹配一切

[英]Regexp match everything after a word

我正在嘗試從數據URL中提取base64字符串。 字符串看起來像這樣,所以我試圖提取單詞base64之后的所有內容

test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB'

所以我想從上面的字符串中提取以下內容

,/9j/4AAQSkZJRgABAQAAAQAB

這是我的正則表達式

const base64rgx = new RegExp('(?<=base64)(?s)(.*$)');
console.log(test.match(base64rgx))

但這失敗並顯示以下錯誤:

 VM3616:1 Uncaught SyntaxError: Invalid regular expression: /(?<=base64)(?s)(.*$)/: Invalid group

似乎不支持向后看。 但是好消息是您不需要在這里四處看看,以下模式應該可以工作:

 test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB' var regex = /.*?base64(.*?)/g; var match = regex.exec(test); console.log(match[1]); 

我不確定到底要捕獲base64之后的字符串多少。 例如,如果您不希望使用逗號或9j部分,那么我們可以輕松地修改模式以進行處理。

 var test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB'; var regex = /(?<=base64).+/; var r = test.match(regex); console.log(r); 

這是正則表達式: https : //regex101.com/r/uzyu0a/1

您可能不需要正則表達式:只需找到帶有indexOf base64字符串並使用substr

 var test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB'; var data = test.substr(test.indexOf('base64')+6); // 6 is length of "base64" string console.log(data); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM