【问题标题】:URL Rewrite Regex Match No Hash and EmptyURL 重写正则表达式匹配无哈希和空
【发布时间】:2014-08-30 03:26:06
【问题描述】:

我正在尝试编写一些正则表达式来匹配我们的 URL 重写的一些 URL...

我基本上是在尝试匹配任何不包含 # 且不为空或只是前面的 / 的 url。

例如:

匹配:/test-url

匹配:/abc123

不匹配:/#/test-url

不匹配:/

不匹配:(无)

这是我一直在尝试的正则表达式,但它不起作用。

^/(?!#.*)

【问题讨论】:

    标签: regex url-rewriting


    【解决方案1】:

    我认为这是因为您缺少/ 的转义符\ 以及否定后的匹配看起来像.* 这样的头部:^\/(?!#.*).*

    Online Demo

    根据您的评论匹配多个字符,请尝试以下操作:^\/(?!#.*).+ 在表达式末尾使用+ 而不是*

    Online Demo 2

    【讨论】:

    • 这也很接近,但它也单独匹配“/”
    • 更改最后一个* for + like ^\/(?!#.*).+
    【解决方案2】:

    尝试以下正则表达式来匹配以/ 开头的字符串,后跟任何不是# 的字符一次或多次。

    ^\/[^#\n]+$
    

    DEMO

    ^\/[^#]+(?=\n)$
    

    DEMO

    【讨论】:

    • 这很好 - 非常接近,但它只匹配“/” - 有没有办法避免这种情况,比如 match /abc123 - 基本上不匹配 / 单独?
    • 它匹配/,并且后面必须跟一个或多个非#字符。
    猜你喜欢
    • 2017-02-18
    • 1970-01-01
    • 2011-07-08
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多