Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于查找第一个单斜杠和最后一个斜杠的正则表达式_Regex_Regex Lookarounds_Regex Negation_Regex Group_Regexp Replace - Fatal编程技术网

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

Regex 用于查找第一个单斜杠和最后一个斜杠的正则表达式,regex,regex-lookarounds,regex-negation,regex-group,regexp-replace,Regex,Regex Lookarounds,Regex Negation,Regex Group,Regexp Replace,这是我的url结构 abc.com/SOLAPUR\u JANATA\u SAHKARI\u BANK\u LTD.SOLAPUR/MAHARASHTRA/index.html 这些类型的模式会给php中的mkdir()带来问题 SOLAPUR\u JANATA\u SAHKARI\u银行有限公司SOLAPUR SOLAPUR\u JANATA\u SAHKARI\u BANK\u LTD.SOLAPUR./(/考虑目录) 我想要达到的是 获取第一个单斜杠和结束单斜杠之间的内容,即 SOLAPU

这是我的url结构

abc.com/SOLAPUR\u JANATA\u SAHKARI\u BANK\u LTD.SOLAPUR/MAHARASHTRA/index.html

这些类型的模式会给php中的mkdir()带来问题
SOLAPUR\u JANATA\u SAHKARI\u银行有限公司SOLAPUR
SOLAPUR\u JANATA\u SAHKARI\u BANK\u LTD.SOLAPUR./(/考虑目录)

我想要达到的是 获取第一个单斜杠和结束单斜杠之间的内容,即

SOLAPUR\u JANATA\u SAHKARI\u银行有限公司SOLAPUR/MAHARASHTRA

并替换。与@
SOLAPUR\u JANATA\u SAHKARI\u银行_LTD@SOLAPUR/马哈拉施特拉邦/

请推荐正则表达式


提前感谢。

您可以尝试以下匹配:
^.*?\/(.+)\.(.+\/).*$

替换为
\1@\2

请在此处尝试:

说明:

  • ^.*?\/
    :匹配输入的开头以及第一个
    /
    之前的所有内容
    *?
    是非贪婪(惰性)的,因此它将只匹配到第一个
    /
  • (.+)\.
    :在第一个
    /
    (以上)之后,直到
    为止,对所有内容进行分组捕获
  • (.+\/)
    :组捕获
    之后直到最后一个
    /
    的所有内容<默认情况下,代码>+是贪婪的,因此
    +
    将捕获任何匹配的
    /
    ,直到最后一个匹配为止
  • *$
    :匹配剩余的内容
第一组在第一个
/
之间捕获,例如
SOLAPUR\u JANATA\u SAHKARI\u BANK\u LTD

第二组在
之间捕获,包括最后一组
/
,因此
SOLAPUR/MAHARASHTRA/


因此,
\1@\2
产生了
SOLAPUR\u JANATA\u SAHKARI\u银行_LTD@SOLAPUR/马哈拉施特拉邦/

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

let input='abc.com/SOLAPUR\u JANATA\u SAHKARI\u BANK\u LTD.SOLAPUR/MAHARASHTRA/index.html';
输出=输入。替换(/\/(.*)\//,'foo');

log(`output:${output}`)您好,欢迎来到堆栈溢出。请提供您的代码以供进一步了解,并向社区展示您迄今为止所做的尝试。另外,请检查。正则表达式并不总是答案。为什么不用斜线拆分字符串,替换索引1+中的点,然后用斜线将其重新连接在一起。是的,可以这样做。但是我的用例还有其他问题。这就是我探索正则表达式的原因@Trenton Tramathank感谢您的解决方案!感谢您的帮助。谢谢您的帮助和快速回复。