隔离字符串的一部分

时间:2019-03-05 19:16:42

标签: regex

我需要隔离以下URL的“ _Back-80x80.png”部分,并使用Javascript替换它。我知道如何替换它,只需要帮助使用正则表达式隔离SKU部分即可。唯一的常数将是它在字符串中wp-content/uploads/之后和最后/之后。

/wp-content/uploads/SKU_Back-80x80.png

我已经捕获了wp-content/uploads/之后的所有内容,只是无法弄清楚如何忽略SKU之前的所有内容。

/\/wp-content\/uploads\/.*/g

2 个答案:

答案 0 :(得分:1)

您想将/wp-content/uploads/之后的整个部分更新为字符串的下一个/

使用

s = s.replace(/(\/wp-content\/uploads\/)[^\/]*/g, "$1" + new_value);

请参见regex demo

详细信息

  • (\/wp-content\/uploads\/)-第1组,文字/wp-content/uploads/的子字符串(通过替换模式中的$1替换后向引用来引用)
  • [^\/]*-除/之外的0个或更多字符

如果new_value可能包含$,请在上面的代码中将其替换为new_value.replace(/\$/g, '$$$$')(这样可以正确地转义美元符号)。

答案 1 :(得分:1)

如果您要提取/_之间的任何内容(例如SKU),请使用以下方法:

const regex = /\/\w*\_/g

const text = "/wp-content/uploads/SKU_Back-80x80.png"

console.log(text.match(regex)[0].substring(1, (text.match(regex)[0].length - 1)))