gpt4 book ai didi

regex - 在 Django url 正则表达式模式中使用方括号和破折号

转载 作者:行者123 更新时间:2023-12-02 22:11:32 25 4
gpt4 key购买 nike

最初我使用的是 url 模式:

url(r'^poi/folder/(?P<doc_type>\w+)/$', ...)

捕获doc_type参数是从 django 中拉出的字符串 models.CharField ,但是当我更改模型以使用 django models.SlugField该模式将不再匹配字符串(SlugField 返回一个 unicode 字符串),这迫使我将模式更改为:

url(r'^poi/folder/(?P<doc_type>[-\w]+)/$', ...

我的问题是为什么添加括号和“-”会使模式匹配 unicode 字符串?

最佳答案

我不确定 Django 特别是什么,但我认为你错了。括号表示 character class正则表达式中的选择器。

所以 \w[-\w] 的区别在于:

  • \w 只匹配小写和大写字母以及数字和 _(下划线符号)但 - (破折号)
  • 字符类 [-\W] 匹配 \w 匹配的所有内容加上 -(破折号)

因此,第一个正则表达式对您的其他字段不起作用而第二个正则表达式起作用的最有可能的原因是第二个字段中有破折号。不是该字段包含 Unicode 字符的事实。

关于regex - 在 Django url 正则表达式模式中使用方括号和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com