正则判断文本为html标签,正则表达式匹配HTML标签和提取文本
时间: 2023-06-18 15:06:00 浏览: 58
判断文本是否为HTML标签的正则表达式:
```python
import re
def is_html_tag(text):
pattern = r'^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$'
return re.match(pattern, text) is not None
```
匹配HTML标签和提取文本的正则表达式:
```python
import re
def match_html_tag(text):
pattern = r'<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)'
return re.findall(pattern, text)
def extract_text_from_html(text):
pattern = r'<[^>]*>'
return re.sub(pattern, '', text)
```
其中,`match_html_tag`函数可以返回所有匹配到的HTML标签及其属性和内部文本,而`extract_text_from_html`函数可以提取出HTML文本中的纯文本内容。
相关问题
Python正则表达式如何提取html文档中除去标签的信息
可以使用re模块中的sub函数,将所有的HTML标签替换为空字符串,得到除去标签的文本信息。具体代码如下:
```python
import re
html = '<html><head><title>Test</title></head><body><p>Hello, world!</p></body></html>'
text = re.sub('<[^>]+>', '', html)
print(text)
```
输出结果为:
```
TestHello, world!
```
其中,`<[^>]+>`是一个正则表达式,表示匹配所有的HTML标签。`re.sub`函数将匹配到的标签替换为空字符串,得到除去标签的文本信息。
shell正则表达式判断文本
在Shell脚本中,可以使用正则表达式来匹配文本。一般来说,正则表达式可以用于判断文本的格式、提取文本中的信息等。
在Shell中使用正则表达式,可以使用grep、sed等命令。下面是一个例子:
假设我们要判断一个字符串是否为手机号码,可以使用以下的Shell脚本:
```shell
#!/bin/bash
# 判断字符串是否为手机号码
read -p "请输入一个字符串:" str
if echo $str | grep -qE '^1[3-9][0-9]{9}$'; then
echo "是手机号码"
else
echo "不是手机号码"
fi
```
在上面的脚本中,使用了grep命令来判断字符串是否符合手机号码的格式。其中,-q选项表示不输出匹配结果,只返回是否匹配成功。
正则表达式'^1[3-9][0-9]{9}$'表示以1开头、第二位为3到9之间的数字、后面跟着9位数字的字符串。如果匹配成功,则表示输入的字符串是一个手机号码。