【问题标题】:Regex for checking a url format用于检查 url 格式的正则表达式
【发布时间】:2015-09-20 17:13:01
【问题描述】:

我需要一个正则表达式来检查一个字符串是否以'/message/posts'开头,下一个斜杠和一些字符串是可选的,但下一个字符不应该是“?”。

例如:

/message/posts => true
/message/posts?a=b => false
/message/posts/lalala => true
/message/posts/lalala?n=v => false

我尝试了下一个代码,但我不知道接下来是什么:

^(\/message\/posts)(\/)?

【问题讨论】:

  • ^\/message\/posts(?:\/\w+)*$

标签: regex query-string


【解决方案1】:

应该这样做: ^\/message\/posts[^?]*$

RegEx101 demo

[^?] 表示“匹配除 ? 之外的任何内容”,* 表示“执行 0 次或多次”,直到字符串锚 $ 结束。

您不需要像以前那样使用捕获括号,即使这通常不会造成任何伤害。如果您想在不捕获的情况下对内容进行分组,请尝试 (?:stuff here) 而不是 (stuff here)。有关这方面的信息,请参阅 www.regular-expressions.info

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 2015-03-12
    • 2011-12-19
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多