python学习——正则表达式
匹配单个字符 | |
---|
符号 | 说明 |
. | 可匹配任意一个字符(除了换行 \n) |
[ ] | 匹配 [ ] 中列举的字符 |
\d | 匹配数字,即0-9 |
\D | 匹配非数字,即不是数字 |
\s | 匹配空白,即[\t \n\ r \f] |
\S | 匹配非空白 |
\w | 匹配字母数字及下划线 |
\W | 匹配非字母数字及下划线 |
匹配多个字符 | |
---|
* | 匹配前一个字符出现0次或者无限次,即可有可无 |
+ | 匹配前一个字符出现1次或者无限次,即至少有1次 |
? | 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
{m} | 匹配前一个字符出现m次 |
{n,m} | 匹配前一个字符出现从n到m次 |
注:单个字符和多个字符的匹配混合使用
练习:
import re
def main():
# htm = "<dd class=job_bt><h3 class=\"description\">职位描述:</h3></dd>"
htm = """<dd class=job_bt>
<h3 class="description">职位描述:</h3>
<div>
<p>工作职责:
<br>1. 参与新闻舆情系统开发;
<br>2. 参与新闻数据加工,流转,数据产品开发;
<br>3. 数据相关的后端服务开发;
<br>4. 参与新技术调研和基础模块开发<br>
<br>任职资格:
<br>1. 计算机相关专业,有扎实的计算机理论基础;
<br>2. 熟悉Python, Java, C/C++, Go等任意开发语言, 有良好的编程风格和习惯;
<br>3. 熟悉网络协议,熟悉linux,mysql,redis等;
<br>4. 有socket编程经验, 熟悉网络开发模式,开源web服务器;
<br>5. 有较好的交流沟通能力,较强的责任感;
<br>
</p>
</div>
</dd>"""
ret = re.sub(r"<+\w*\d*\s*\w*[=\"/]*\w*[\"]*>+", "", htm)
if ret:
# print("%s 匹配。。。" % htm)
print(ret)
else:
print("%s 不匹配。。。" % htm)
if __name__ == '__main__':
main()