首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为该字符串在url conf中获得正确的regex?

如何为该字符串在url conf中获得正确的regex?
EN

Stack Overflow用户
提问于 2012-10-11 02:09:43
回答 2查看 99关注 0票数 2

目前的标准是:

代码语言:javascript
复制
url(r'^partner/(?P<author>[-\w]+)/(?P<video>\w+)/(?P<title>\w+)/$', 'video_player'),

我已经尝试了很长一段时间了,但是无法让标题(最后一个参数)接受下面的两个示例字符串:

  • 僵尸启示录!:(100+)拯救生命的技能,你需要从“专家”或他们这样说?
  • http://gdata.youtube.com/feeds/api/videos/k8J-72MmTGg/related?v=2

有什么建议吗?

编辑

当我把它作为标题的参数时,这里的一些文字不起作用:国家棒球名人堂展示了6件洋基的季后赛纪念品:1923年世界系列赛的手表;1926年世界系列赛的贝贝露丝的球棒;1956年唐拉森完美比赛的约吉贝拉的手套;1962年世界系列赛的最后一次出球;1996年世界大赛的德里克杰特的球衣;2000年地铁系列赛的马里亚诺里维拉的帽子。

http://www.buzzfeed.com/sports

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-11 02:48:17

\w+是一个正则表达式,它只匹配字母数字字符和下划线。我将试图展示一个严格的解决方案,你给出的例子和一个更一般的,可能是一个也适用于你。

由于您喜欢匹配不包含在w组中的其他字符,所以您应该创建一个自定义组,添加所需的特殊字符。要形成一个组,您可以将它写在括号[]之间。要向组中添加字符,只需一个接一个地写字符,除了-之外,因为它可以定义一个范围,所以必须将其放在前面。对于第一个例子,您需要匹配字符,如括号和加号,这些字符对于regex是特殊的,因此必须转义。对于+ -> use + for (因此,第一个示例的正则表达式将开始如下所示:正则表达式用于正则表达式的[\w\(\)\+]+ ),您可以在开始时添加-符号以避免范围后查看:备忘单可下载,以及其他转义字符和非转义字符。匹配两个字符串的组如下所示:

[-\w\/\?:=\.\s!\(\)"\+]+

因为这很复杂,而且您似乎想要任何东西作为标题,我推荐特殊组.,因为它包含任何字符,除了换行符。

regexp看起来非常简单:.+

票数 2
EN

Stack Overflow用户

发布于 2012-10-11 03:11:31

代码语言:javascript
复制
url(r'^partner/(?P<author>[-\w]+)/(?P<video>\w+)/(?P<title>.*)/$', 'video_player'),

应该能带你过去。只需在比赛结束后把所有的事情都做完,直到最后/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12831190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档