【问题标题】:RegEx and QueryString正则表达式和查询字符串
【发布时间】:2009-06-26 12:00:36
【问题描述】:

我有这个用于我的网站的正则表达式

^.*/([a-z0-9,-]+)/([a-z0-9,-]+)/$

我的问题是谁可以在我的正则表达式中使用查询字符串,

/about-us/contact/?l=en -> page.aspx?id=12&l=en

其中 id=1 = /about-us/contact/

其中 l=en = /?l=en

编辑:

^.*/([a-z0-9,-]+)/([a-z0-9,-]+)/(\?l=en)

我收到错误:\ i C#

正则表达式中是否有办法判断 ?x=x 是否存在,则正则表达式是否匹配,但如果 ?x=x 不存在,/about-us/contact/ 的正则表达式是否匹配?

谢谢,

【问题讨论】:

    标签: c# regex query-string


    【解决方案1】:

    表达式

    [\?&](?<name>[^&=]+)=(?<value>[^&=]+)
    

    说明 匹配 HTTP 查询字符串中的名称/值对,将名称放入名为“name”的组中,将值放入名为“value”的组中

    比赛-->http://stackoverflow.com/?a=b&c=d

    不匹配-->http://stackoverflow.com/

    作者等级:Kevin Spencer。

    【讨论】:

      【解决方案2】:

      如果您想在搜索模式中包含 ? 字符,您只需使用反斜杠对其进行转义。因此,如果您想查找 'l=en',请查找 '\?l=en'

      ^.*/([a-z0-9,-]+)/([a-z0-9,-]+)/(\?l=en)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多