利用正则表达式得到一行HTML文本中所有超链接对应的网址,并将网址输出到屏幕上(每行输出一个网址)。
时间: 2024-04-01 18:36:22 浏览: 18
可以使用以下Python代码来解决这个问题:
```python
import re
# 定义HTML文本
html = '<a href="https://www.example.com">Example</a> <a href="https://www.google.com">Google</a>'
# 定义正则表达式
regex = r'<a href="(\S+)">'
# 使用正则表达式查找所有匹配项
matches = re.findall(regex, html)
# 输出所有网址
for url in matches:
print(url)
```
输出结果为:
```
https://www.example.com
https://www.google.com
```
这段代码首先定义了一个HTML文本,然后定义了一个正则表达式来匹配所有超链接的URL。通过使用Python的`re.findall()`函数,我们可以找到所有匹配正则表达式的字符串,并将它们存储在一个列表中。最后,我们遍历这个列表,输出所有的网址。
相关问题
帮我用正则表达式写一个匹配文本文件中所有不含字符串“ v11 ”的行
可以使用负向预测先行断言来匹配不含字符串 "v11" 的行,正则表达式如下:
```
^(?!.*v11).*$
```
解释:
- `^` 匹配行首
- `(?!.*v11)` 负向预测先行断言,表示后面不含字符串 "v11"
- `.*` 匹配任意字符,零次或多次
- `$` 匹配行尾
将以上正则表达式应用于文本文件,可以匹配所有不含字符串 "v11" 的行。
写一个python函数把一个文本文件中所有符合正则表达式的行和行号返回
可以使用Python中的re模块来实现正则表达式的匹配,同时使用内置函数enumerate来获取行号。下面是一个示例代码:
``` python
import re
def search_regex_in_file(file_path, regex_pattern):
matched_lines = []
with open(file_path, 'r') as file:
for line_num, line in enumerate(file, start=1):
if re.match(regex_pattern, line):
matched_lines.append((line_num, line.rstrip('\n')))
return matched_lines
```
这个函数接受两个参数:文件路径和正则表达式模式。它将打开文件并遍历所有行,使用re.match()函数来检查每一行是否匹配给定的模式。如果匹配,则将该行及其行号添加到匹配行列表中。最后,返回匹配行列表。
你可以使用类似下面的代码来调用这个函数:
``` python
matched_lines = search_regex_in_file('test.txt', r'\d+\.')
for line_num, line in matched_lines:
print(f"Line {line_num}: {line}")
```
这个代码将使用正则表达式模式`\d+\.`来搜索test.txt文件中以数字和句点结尾的行,并打印出它们的行号和内容。