python提取字符串中的网址
时间: 2023-05-26 11:03:54 浏览: 149
可以使用正则表达式来提取字符串中的网址。
示例代码:
```python
import re
text = "这是一个网址:https://www.baidu.com,另外一个网址:http://www.google.com"
url_pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
urls = re.findall(url_pattern, text)
print(urls)
```
输出结果:
```python
['https://www.baidu.com', 'http://www.google.com']
```
解释:
- 使用正则表达式`http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+`匹配字符串中的网址。该正则表达式包含以下部分:
- `http[s]?://`:匹配http或https协议的网址,问号表示s可选;
- `(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+`:匹配网址中的字符,包括字母、数字、特殊字符和%编码的字符,加号表示多次出现。
- 使用`re.findall()`函数找到所有匹配的网址,返回一个列表。
注意事项:
- 要注意正则表达式的正确性,因为网址的格式很多,难以覆盖所有情况。
- 要注意字符串中可能会包含其他形式的字符,如中文、标点符号等。在特定情况下需要先对字符串进行预处理。
阅读全文