Python最后一场比赛



如何在以下字符串中获取"california"部分?

http://states.com/_states/united_states/50/california

我正在尝试以下内容,但不知道如何匹配最后一个/。

match = re.search(r'/(.*)$', state_url)

您确定需要正则表达式吗?下面这些呢?

In [66]: url = 'http://states.com/_states/united_states/50/california'
In [67]: url.split('/')[-1]
Out[67]: 'california'

当然,这取决于您是否总是想提取URL中的最后一个单词。我只是想提一下。

使用

r'[^/]*$'

匹配输入结束前除'/'以外的任意数目的字符理想情况下,对于URL,

r'[^/#?]*(?:$|[#?])'

匹配URL路径部分中任意数量的非特殊字符,直到输入($)或路径部分[#?]的结尾。(?:...)只是一个括号组,它不捕获内容。


顺便说一句,RFC 3986的附录B是使用正则表达式解析uri的一个很好的参考。

用正则表达式解析URI引用

因为"first-match-wins"算法与"greedy"算法相同POSIX正则表达式使用的消歧方法是使用正则表达式解析属性是很自然和常见的URI引用的潜在五个组件。

下面一行是用于分解a的正则表达式格式良好的URI引用到它的组件。

 ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(?([^#]*))?(#(.*))?
  12            3  4          5       6  7        8 9

最新更新