为了账号安全,请及时绑定邮箱和手机立即绑定

获取动态字符串的一部分

获取动态字符串的一部分

肥皂起泡泡 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 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信