【问题标题】:Regex matching alphanumeric with special characters正则表达式匹配带有特殊字符的字母数字
【发布时间】:2014-04-16 06:26:51
【问题描述】:

我正在尝试在 Django url 模式中形成一个 url。

   url(r'^reports/(?P<bu>\w+|\W)/$', \
                LrsReportView.as_view(), name="elearning.lrsreports.region"),  

bu可以是字符串或字符串字母数字或带特殊字符的字母数字(/除外)

但上面的网址显示错误

NoReverseMatch: Reverse for 'elearning.lrsreports.region' with arguments '(u'Lawn&Garden',)' and keyword arguments '{}' not found.

根据我理解的错误是这个正则表达式不接受具有特殊字符的字符串

请帮我看看这里可能出了什么问题。

【问题讨论】:

  • WHat's wrong with my regex -- 一个人怎么可能告诉你出了什么问题而不知道它的目的是什么?
  • 输入错误,你可以她的 url 不接受具有特殊字符串的字符串是 Lawn&Garden
  • 一个与正则表达式无关的错误是name 两者都相同。
  • @rohan 查看更新的问题

标签: python regex django


【解决方案1】:

您当前的 RegEx 将匹配:

  • 由一个或多个字母、数字和/或下划线组成的字符串:[A-Za-z0-9_]+

  • 不是字母、数字或下划线的单个字符。 [^A-Za-z0-9_]

你可能需要更多类似的东西:

(?P<bu>[\w-]+)

这将匹配字母、数字、下划线和连字符。添加您想要的任何其他特殊字符(在方括号内)。请记住,某些字符需要在它们之前使用 \ 转义。

【讨论】:

    【解决方案2】:

    试试这个-

    /^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.(_|[ ^\w])).+$/

    【讨论】:

      猜你喜欢
      • 2022-08-17
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2013-04-04
      相关资源
      最近更新 更多