gpt4 book ai didi

python - 正则表达式 URL 帮助 : Word or Phrase

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:31 26 4
gpt4 key购买 nike

我是正则表达式的绝对菜鸟(我有点了解基础知识,需要帮助一个词或一个短语。如果它是一个短语,则用连字符 - 分隔每个词:

这是我当前的正则表达式,它只匹配一个词:

r'^streams/search/(?P<stream_query>\w+)/$

?P 只是允许 URL 带一个参数。

额外说明:我在 Django urls.py 中使用 python re 模块

有什么建议吗?

这里有一些例子:

game
gsl
starcraft-2014
final-fantasy-iv
word1-word2-word-3

更新说明:我基本上需要一个正则表达式来扩展当前的,所以在同一个正则表达式中,没有其他的:

r'^streams/search/(?P<stream_query>\w+)/$

所以在这个里面包含新的正则表达式,其中 ?P\w+ 是 Django 认为是参数(并传递到函数中)的任何单词。

URL 定义,包括正则表达式: url(r'^streams/search/(?P\w+)/$', 'stream_search', name='stream_search')

然后,Django 将该参数传递给 stream_search 函数,该函数采用该参数:

def stream_search(request, stream_query):
#here I manipulate the stream_query string, ie: removing the hyphens

因此,我再次需要一个 re 来匹配传递到 stream_query 参数(或如果需要,第二个参数)的单词或短语。所以,我希望 stream_query 拥有的是:

word1

或者 单词1-单词2-单词3

最佳答案

如果我正确理解您的问题,那么您可能根本不需要使用正则表达式。

基于你的例子:

example.com/streams/search/rocket-league-fsdfs-fsdfs

看来你要处理的词总是在最后一个/之后找到。所以你可以rsplit然后检查-。这是一个例子:

url = "example.com/streams/search/rocket-league-fsdfs-fsdfs"
result = url.rsplit("/", 1)[-1]
#result = ["example.com/streams/search", "rocket-league-fsdfs-fsdfs"]
if "-" in result:
#do whatever you want with the string
else:
#do whatever you want with the string

或者匹配 wordword-word-word 的正则表达式为:[\w-]+

关于python - 正则表达式 URL 帮助 : Word or Phrase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31349827/

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