正则表达式用于查找第一个单斜杠和最后一个斜杠

这是我的网址结构。

abc.com/SOLAPUR_JANATA_SAHKARI_BANK_LTD.SOLAPUR/MAHARASHTRA/index.html

这些类型的模式在php中使用mkdir()造成问题 SOLAPUR_JANATA_SAHKARI_BANK_LTD.SOLAPUR SOLAPUR_JANATA_SAHKARI_BANK_LTD.SOLAPUR./ (./ considers directory)

我想要实现的是 获取第一个单斜杠和最后一个单斜杠之间的内容

SOLAPUR_JANATA_SAHKARI_BANK_LTD.SOLAPUR/MAHARASHTRA

并替换。与@ SOLAPUR_JANATA_SAHKARI_BANK_LTD@SOLAPUR/MAHARASHTRA/

请建议使用正则表达式。

谢谢。

appleapple12 回答:正则表达式用于查找第一个单斜杠和最后一个斜杠

您可以尝试像这样的比赛: ^.*?\/(.+)\.(.+\/).*$

替换为\1@\2

在这里尝试:https://regex101.com/r/i0WM2O/2

说明:

  • ^.*?\/:匹配输入的开头以及所有内容,包括第一个/,包括第一个.*?/是非贪婪的(懒惰的),因此它只会匹配到第一个(.+)\.
  • /:分组捕获第一个.之后(上方)直到(.+\/)
  • 的所有内容
  • .:分组捕获/之后直至最后+的所有内容。 .+默认是贪婪的,因此/将捕获任何匹配的.*$,直到最后一个。
  • /:匹配剩下的所有内容

第一个组在第一个.SOLAPUR_JANATA_SAHKARI_BANK_LTD之间捕获,例如.

第二个组在/到最后一个SOLAPUR/MAHARASHTRA/之间捕获,所以\1@\2

所以SOLAPUR_JANATA_SAHKARI_BANK_LTD@SOLAPUR/MAHARASHTRA/产生{{1}}

,

RegExp将起作用=> \/(.*)\/

let input = 'abc.com/SOLAPUR_JANATA_SAHKARI_BANK_LTD.SOLAPUR/MAHARASHTRA/index.html';

output = input.replace(/\/(.*)\//,'foo');

console.log(`output: ${output}`);

本文链接:https://www.f2er.com/2687643.html

大家都在问