Regex 用于尾部斜杠的正则表达式,包括hompage“/&引用;

Regex 用于尾部斜杠的正则表达式,包括hompage“/&引用;,regex,Regex,我使用这个正则表达式作为过滤器来捕获所有带有尾随斜杠的页面(与其相同的非尾随斜杠版本相反) 我发现它过滤了我想要的东西,除了谷歌分析中的主页“/”。我如何在报告中包括我的所有网页/mypage/,/features/,/blog/这是我的博客标题,并在表达式中排除它们的/mypage,/features,/blog/这是我的博客标题,您可以使用这个正则表达式: \/(?:[\w-]+\/)* ,其中还包括正则表达式如何执行匹配的说明。您可以使用以下正则表达式: \/(?:[\w-]+\/)*

我使用这个正则表达式作为过滤器来捕获所有带有尾随斜杠的页面(与其相同的非尾随斜杠版本相反)


我发现它过滤了我想要的东西,除了谷歌分析中的主页
“/”
。我如何在报告中包括我的所有网页
/mypage/
/features/
/blog/这是我的博客标题
,并在表达式中排除它们的
/mypage
/features
/blog/这是我的博客标题
您可以使用这个正则表达式:

\/(?:[\w-]+\/)*

,其中还包括正则表达式如何执行匹配的说明。

您可以使用以下正则表达式:

\/(?:[\w-]+\/)*

,其中还包括正则表达式将如何执行匹配的说明。

您的主页路径只有一个字符长,因此只需在正则表达式中将
*
替换为
+
即可将其排除:

^(/[a-z0–9/_\-]+[/])$
但为了匹配以/结尾的路径,我只写

^.+/$

您的主页路径只有一个字符长,因此只需在正则表达式中将
*
替换为
+
即可将其排除在外:

^(/[a-z0–9/_\-]+[/])$
但为了匹配以/结尾的路径,我只写

^.+/$

要获得与当前正则表达式相同的确切含义,但允许使用单个
/
,只需将其添加为“or”选项即可。正则表达式中的“或”字符是
|
。因此,类似这样的方法会起作用:

^(/[a-z0-9/\-]*[/]|/)$
您可以做的一个小改进是从character类中去掉第三个
/
,因为它只是一个字符。你也可以按照字面意思来匹配它。您也不需要转义
-
,因为它位于字符类的末尾:

^(/[a-z0-9/-]*/|/)$
现在,它仍然具有与原始正则表达式相同的确切含义,并且它还捕获了单个
/
。不过,在这个正则表达式中还有很多其他条件。如果您只想检查任何以
/
结尾的字符串,可以将其缩短为:

^*/$
这将匹配以
/
结尾的任何字符串,只包括一个
/
。它也恰好比你原来的正则表达式短得多,快得多。以下是此更新正则表达式的细分:

  • ^
    此匹配必须从字符串开头开始
  • *
    匹配0个或更多字符
  • /
    匹配文字
    /
    。这确保字符串以
    /
    结尾
  • $
    此匹配必须在字符串末尾结束。这确保了
    /
    实际上位于字符串的末尾,而不是中间

要获得与当前正则表达式相同的确切含义,但允许使用单个
/
,只需将其添加为“或”选项即可。正则表达式中的“或”字符是
|
。因此,类似这样的方法会起作用:

^(/[a-z0-9/\-]*[/]|/)$
您可以做的一个小改进是从character类中去掉第三个
/
,因为它只是一个字符。你也可以按照字面意思来匹配它。您也不需要转义
-
,因为它位于字符类的末尾:

^(/[a-z0-9/-]*/|/)$
现在,它仍然具有与原始正则表达式相同的确切含义,并且它还捕获了单个
/
。不过,在这个正则表达式中还有很多其他条件。如果您只想检查任何以
/
结尾的字符串,可以将其缩短为:

^*/$
这将匹配以
/
结尾的任何字符串,只包括一个
/
。它也恰好比你原来的正则表达式短得多,快得多。以下是此更新正则表达式的细分:

  • ^
    此匹配必须从字符串开头开始
  • *
    匹配0个或更多字符
  • /
    匹配文字
    /
    。这确保字符串以
    /
    结尾
  • $
    此匹配必须在字符串末尾结束。这确保了
    /
    实际上位于字符串的末尾,而不是中间

    • \d
      \w
      的一部分;您可以删除
      \d
      此外,斜杠不需要转义-它们没有特殊的正则表达式含义(尽管有些语言使用斜杠作为正则表达式分隔符,但斜杠并不特殊)。破折号
      -
      。破折号仅在字符类中介于两个字符之间时用作范围,但在本例中,破折号位于字符类的末尾,因此无需转义。此外,根据工具的不同,
      ^
      $
      可能可以删除-试试看是否可以进一步简化。@Bohemian和@Charlie Armstrong感谢您的建议!我已经更新了我的答案。关于斜杠,我让它们成为通用的正则表达式,因为在一些不同处理
      /
      的语言中,不转义它们会导致模式错误,例如PHP和JavaScript。
      \d
      \w
      的一部分;您可以删除
      \d
      此外,斜杠不需要转义-它们没有特殊的正则表达式含义(尽管有些语言使用斜杠作为正则表达式分隔符,但斜杠并不特殊)。破折号
      -
      。破折号仅在字符类中介于两个字符之间时用作范围,但在本例中,破折号位于字符类的末尾,因此无需转义。此外,根据工具的不同,
      ^
      $
      可能可以删除-试试看是否可以进一步简化。@Bohemian和@Charlie Armstrong感谢您的建议!我已经更新了m