regex 在Python中使用正则表达式从url链接(嵌入在长字符串中)移除不必要的部分[重复]

s6fujrry  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(86)

此问题已在此处有答案

How to get everything after last slash in a URL?(14个回答)
8天前关闭
这篇文章是编辑并提交审查8天前.
假设有一个URL链接嵌入在一个长字符串中,如下所示

XXXXXXXXXXXhttps://xxx/xxx/xxx/XXXXX?xxx

我想删除大部分的网址链接,只保留最后一个/?之前的部分。在本例中,仅保留XXXXX。此外,我还想保留https之前的所有字符。
实现这一目标的最佳途径是什么?谢谢你。

yiytaume

yiytaume1#

你可以采取几种方法。
如果你使用的是 Python 3,你可以使用下面的代码。
您可以使用 * 括号表示法 * 来获取子字符串。
str.rfind 方法来定位 ,然后是最后一个 /

string = 'https://xxx/xxx/xxx/XXXXX?xxx'
string = string[0:string.rfind('?')]
string = string[string.rfind('/') + 1:]

输出量

XXXXX

此外,您可以使用 * re.search * 方法来捕获值,使用正则表达式模式。

/([^/]+?)\?
import re

string = 'https://xxx/xxx/xxx/XXXXX?xxx'
match = re.search(r'/([^/]+?)\?', string)
if match:
    print(match.group(1))

最后,您可以使用 str.splitstr.rsplit 方法来提取子字符串值。

string = 'https://xxx/xxx/xxx/XXXXX?xxx'
string = string.split('?')[0].rsplit('/', 1)[1]

相关问题