匹配两个字符之间的字符串

时间:2018-11-07 09:45:47

标签: regex

我正在寻找一个正则表达式命令,该命令从字符串中为我提供最后一个“ /”和“ &”之间的单词。

字符串:

  

://name.prod.something-blabla.com/erp/apps/appname/appname.text#/com/text/prod/appname/uil/partner/ PartnerBearbeiten &unternehmenId1 = Z0004dw

所需的输出: PartnerBearbeiten

我尝试过:([^\/]+\&),但其中包括&(PartnerBearbeiten&)

图片:Regex code in a xml

4 个答案:

答案 0 :(得分:2)

您可以使用positive lookahead

([^\/]+?)(?=&)

请参见demo

请注意,为了使用多参数URL,我使字符类变得懒惰(使用+?)。

答案 1 :(得分:0)

您可以使用正则表达式前瞻从结果中排除任何匹配项。因此,要排除该特定模式中的&,则正则表达式为([^/]+(?=\&))(选中此RegExr website

答案 2 :(得分:0)

尝试一下:

"scripts": {
  "start" : "webpack-dev-server --history-api-fallback"
},

使用Javascript测试。

答案 3 :(得分:0)

在这里肯定可以使用其他答案中所示的lookahead,但是我认为 cannonical 解决两个分隔字符之间的子字符串问题的解决方案是排除匹配字符类中的最后一个字符:

/([^/&]+)&

这具有使整体表达式更简单并且无需使用非贪婪匹配即可有效地工作的优点:使用不使用非贪婪匹配的先行断言将强制正则表达式回溯,这可以在这种情况下效率低下(尽管使用非贪婪的+?而不是+也可以解决此问题)。

先行断言最好保留给不能以不同方式表达的情况。在这种情况下,它们只是多余的。