正则表达式匹配字符串后的字符

时间:2013-05-11 04:14:33

标签: regex

对于以下表达式^swlang/(\d{2})/$

匹配字符串swlang,后跟两位整数。

现在修改此表达式,使其匹配2个字符。

我尝试过:^swlang/(\S{2})/$但它似乎不起作用。

注意:我正在尝试匹配django中的网址

完整代码看起来像这样

url(r'^swlang/(\d{2})/$', 'klip.views.swlang'),

例如,一个将被路由到klip.views.swlang的网址 将是example.com/swlang/43

所需的可能看起来像example.com/swlang/en

1 个答案:

答案 0 :(得分:2)

字符由[a-zA-Z0-9_]

之类的组表示
\bswlang/([a-zA-Z0-9_]{2})/?

或者您可以使用预定义的\w

\bswlang/(\w{2})/?$

第一个选项允许您定义您想要的任何字符,第二个选项只接受字母,数字和下划线。

编辑后我添加了斜杠,请注意最后一个是/?。这意味着它可能存在或可能不存在于您的URL中

如果您按其他人的指示使用\S,则example.swlang////会匹配,如果这是您想要的,那么请考虑使用我的两个建议之一。

注意:我为^(单词的开头)更改了\b(行首),因为您的示例包含'俚语'之前的字符