【问题标题】:Regex to match letters, numbers and some specific characters?正则表达式匹配字母、数字和一些特定字符?
【发布时间】:2011-11-01 04:59:54
【问题描述】:

我正在尝试匹配可以包含的 Django URL 位:

_, %, &, +, 0-9, a-z, A-Z, (空格)

我该怎么做才能被 Django 的 URL 匹配器以参数的形式拾取?

(r'^(?P<chararg>\w+)/IT_NEEDS_TO_BE_HERE/(?P<intarg>\d+)', 'dest')

【问题讨论】:

    标签: python regex django


    【解决方案1】:

    我不太确定 % char,但正则表达式应该是 [_%&amp;+0-9a-zA-Z ]+

    【讨论】:

      【解决方案2】:

      由于\w 表示[a-zA-Z0-9_],您可以使用:

      [%&+ \w]+
      

      【讨论】:

        【解决方案3】:

        我玩了一下,得到了这个 - [\w\+%_&amp; ]+

        所以(r'^(?P&lt;chararg&gt;\w+)/IT_NEEDS_TO_BE_HERE/(?P&lt;intarg&gt;\d+)', 'dest') 会变成

        (r'^(?P<chararg>\w+)/(?P<arg>[\w\+%_& ]+)/(?P<intarg>\d+)', 'dest')
        

        \w 匹配任何单词字符和数字。 \+数学+

        编辑:\d 不是必需的。

        【讨论】:

        • 这里的 _ 在 Python 3 中是不必要的,因为 \w 将匹配“可以成为任何语言中单词一部分的大多数字符,以及数字和下划线”。或者说docs(编辑:更正格式)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-06
        • 2022-08-17
        • 1970-01-01
        • 2011-08-29
        • 2021-08-04
        • 1970-01-01
        相关资源
        最近更新 更多