亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取動態字符串的一部分

獲取動態字符串的一部分

肥皂起泡泡 2023-03-03 15:54:19
我有以下動態字符串:[TITLE|prefix=a] [STORENAME|prefix=s|suffix=s] [DYNAMIC|limit=10|random=0|reverse=0]我想從 [TITLE|prefix= a ] 中獲取值a并從 [STORENAME|prefix=s|suffix= s ]中獲取值s 。為了獲得 TITLE 的前綴值,我已經嘗試過,result.match(/prefix=*\||\]/)但我沒有得到我需要的東西。
查看完整描述

3 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

[您可以從匹配大寫字符 AZ開始。然后匹配|prefix,然后在一組中捕獲您想要保留的內容。


然后可選擇匹配|suffix并使用另一個組來捕獲您想要保留的內容。


\[[A-Z]+\|(prefix=)([^\]|]+)(?:\|(suffix=)([^\]|]+))?]

正則表達式演示


const regex = /\[[A-Z]+\|(prefix=)([^\]|]+)(?:\|(suffix=)([^\]|]+))?]/g;

const str = `[TITLE|prefix=a] [STORENAME|prefix=s|suffix=s] [DYNAMIC|limit=10|random=0|reverse=0]`;

let m;


while ((m = regex.exec(str)) !== null) {

  console.log(`key: ${m[1]}`)

  console.log(`value: ${m[2]}`)

  if (m[3] !== undefined) {

    console.log(`key: ${m[3]}`)

    console.log(`value: ${m[4]}`)

  }

}

如果[TITLE必須在左側,您還可以使用帶有無限量詞的正后視來獲得匹配項:


(?<=\[TITLE\|.*)(prefix=|suffix=)([^|\]*])

正則表達式演示


const regex = /(?<=\[TITLE\|.*)(prefix=|suffix=)([^|\]*])/g;

const str = `[TITLE|prefix=a] [STORENAME|prefix=s|suffix=s] [DYNAMIC|limit=10|random=0|reverse=0]`;

let m;


while ((m = regex.exec(str)) !== null) {

  console.log(`key: ${m[1]}`)

  console.log(`value: ${m[2]}`)

}


查看完整回答
反對 回復 2023-03-03
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

嘗試以下:

(?<=TITLE\|prefix=)[\w]+|(?<=[\w]+\|suffix=)[\w]+

解釋:

  • TITLE|prefix= --> 將搜索文本“TITLE|prefix=”

  • ?<= --> 將取消選擇它

  • (?<=[\w]+|suffix=) --> 同樣,將選擇“suffix=”和它之前的任何內容,并將取消選擇它

  • [\w]+ --> 將選擇“TITLE|prefix=”和“suffix=”之后的詞


查看完整回答
反對 回復 2023-03-03
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您可以嘗試遵循正則表達式。

(?<=prefix=).*?(?=]|\|)

詳情

  • (?<=prefix=): Lookbehind - 在字符之后匹配字符串prefix=

  • .*?: 匹配盡可能少的任何字符

  • (?=]|\|): 獲取任何字符直到]|

我還嘗試在 javascript 上運行代碼。

var string = "[TITLE|prefix=a] [STORENAME|prefix=s|suffix=s] [DYNAMIC|limit=10|random=0|reverse=0]";

    

var res = string.match(/(?<=prefix=).*?(?=]|\|)/g);

console.log(res);


查看完整回答
反對 回復 2023-03-03
  • 3 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號