【问题标题】:Regular Expression for Finding Everything Between Two Slashes查找两个斜线之间所有内容的正则表达式
【发布时间】:2014-09-06 06:00:58
【问题描述】:

我正在尝试使用正则表达式来查找 URL 列表中两个斜杠之间的所有内容。

当我使用时

/.*?/ 

使用类似

的 URL

/博客/文章/测试

...表达式会找到 /blog/,但不会找到 /article/。我猜这是因为第一个结果包括那个斜线,所以第二个结果忽略了它。我知道这可能是一个简单的解决方法,但我很难过。

【问题讨论】:

  • 您使用的是什么语言/工具,您希望/blog/article/ 匹配吗?
  • 我刚刚在使用Notepad++的grep功能。我想获得 /blog/ 和 /article/ 作为结果。

标签: regex url search find slash


【解决方案1】:

请参阅 HERE 以获取 lookaround assertions

试试这个:

(?<=\/)(.*?)(?=\/)  

除了防止字符消耗之外,您还需要使用global 标志,以便regexp 不会仅仅停留在第一个匹配输入字符串。

/(your regex)/g

【讨论】:

    【解决方案2】:

    您可以通过避免使用“?”来达到您想要的结果。在你的正则表达式中。

    我的尝试显示了这些结果

    > echo /blog/article/test | sed -e 's;\(/.*?\);\1;'
     /blog/article/test
    > echo /blog/article/test | sed -e 's;\(/.*/\).*;\1;'
     /blog/article/
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多