【问题标题】:How do I get the right regex in the url conf for this string?如何在该字符串的 url conf 中获得正确的正则表达式?
【发布时间】:2012-10-01 14:57:57
【问题描述】:

当前的正则表达式是:

url(r'^partner/(?P<author>[-\w]+)/(?P<video>\w+)/(?P<title>\w+)/$', 'video_player'),

我已经尝试了一段时间,但无法让它在标题(最后一个参数)将接受以下 2 个示例字符串的情况下工作:

有什么建议吗?

编辑

当我将它作为标题的参数传递时,下面是一些不起作用的文本: 国家棒球名人堂展示了 6 件洋基队季后赛纪念品:1923 年世界大赛的手表; 1926 年世界大赛中贝比·鲁斯 (Babe Ruth) 的球棒; 1956 年 Don Larsen 完美比赛中 Yogi Berra 的手套; 1962 年世界大赛的最后一球; Derek Jeter 1996 年世界大赛的球衣; 2000 年地铁系列赛中 Mariano Rivera 的帽子。

http://www.buzzfeed.com/sports

【问题讨论】:

  • 您能否提供更多代码或解释更多您尝试使用 XML 做什么?

标签: python regex url youtube-api


【解决方案1】:
url(r'^partner/(?P<author>[-\w]+)/(?P<video>\w+)/(?P<title>.*)/$', 'video_player'),

应该能带你到那里。只需在视频比赛后捕捉到最后的所有内容/

【讨论】:

    【解决方案2】:

    \w+ 是一个只匹配字母数字字符和下划线的正则表达式。 我将尝试为您提供的示例提供一个严格的解决方案,以及一个可能对您也适用的更通用的解决方案。

    由于您喜欢匹配不包含在w 组中的其他字符,您应该创建一个自定义组,添加您需要的特殊字符。 要组成一个组,请将其写在括号 [] 之间。 要将字符添加到组中,只需将它们一个接一个地写入,除了-,因为它可以定义一个范围,所以你必须把它放在前面。 对于第一个示例,您需要匹配括号和加号等字符,这些字符对于正则表达式来说是特殊的,因此必须进行转义。 对于 + -> 使用 + 对于 ( -> 使用 ( 所以第一个例子的正则表达式开始看起来像这样: [\w\(\)\+]+ 有关正则表达式的备忘单,您可以查看:Cheat sheetdownloadable 在开头添加 - 符号以避免范围以及其他转义和非转义字符后。匹配两个字符串的组如下所示:

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

    由于这很复杂,而且您似乎想获得几乎任何东西作为标题,我推荐特殊组 .,因为它包含除换行符以外的任何字符。

    正则表达式看起来很简单: .+

    【讨论】:

    • 我尝试传递我在上面编辑中包含的文本,但它似乎不匹配。有什么建议吗?
    • 嗨 sharataka,很抱歉回复晚了。文本是否包含换行符?
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多