1.匹配单个字符串
import re
text = 'abc'
result = re.match('a', text)
print(result.group())
result2 = re.match('b', text)
print(result2.group())
text = 'abc'
result = re.match('.', text)
print(result.group())
text = '\nabc'
result2 = re.match('.', text)
print(result2.group())
text = '1bc'
print(re.match('\d', text).group())
text = '+abc'
print(re.match('\D', text).group())
text = '\nabc'
result = re.match('\s', text)
print(result.group())
text = 'abc'
result = re.match('\S', text)
print(result.group())
text = '_abc'
result = re.match('\w', text)
print(result.group())
text = '*abc'
result = re.match('\W', text)
print(result.group())
text = 'abc'
result = re.match('[1a]', text)
print(result.group())
text = '1abc'
result = re.match('[0-9]', text)
print(result.group())
text = 'abc'
result = re.match('[a-zA-Z0-9_]', text)
print(result.group())
2.匹配多个字符串
import re
text = 'abc'
text2 = '+abc'
print(re.match('\w*', text).group())
print(re.match('\w*', text2).group())
text = 'abc'
text2 = '*abc'
print(re.match('\w+', text).group())
print(re.match('\w+', text2).group())
text = '_abc'
text2 = '+abc'
print(re.match('\w?', text).group())
print(re.match('\w?', text2).group())
text = '_abc'
print(re.match('\w{2}', text).group())
text = '_abc'
print(re.match('\w{1,3}', text).group())
text ='a+bc'
print(re.match('\w{1,3}', text).group())
text = 'ab+c'
print(re.match('\w{1,3}', text).group())
3.正则表达式小案例
import re
text = '17883172560'
result = re.match('1[14578]\d{9}', text)
print(result.group())
text = "1194707433@qq.com"
result = re.match('\w+@[a-z0-9]+.[a-z]+', text)
print(result.group())
text = "https://edu.csdn.net/learn/24756/280708?spm=1002.2001.3001.4157"
result = re.match('(http|https|ftp)://\S+', text)
print(result.group())
text = "521423200008084064"
result = re.match('\d{17}[\dxX]', text)
print(result.group())
4.开始/结尾/贪婪/非贪婪
import re
import re
text = 'hello world'
result01 = re.match('hello', text)
result02 = re.search('world', text)
result03 = re.search('^hello', text)
text = 'hello world'
result01 = re.search('world$', text)
result02 = re.search('hello$', text)
print(result01.group())
text = ''
result03 = re.search('^$', text)
print(result03.group())
text = 'https://www.baidu.com'
result = re.match('(https|http|ftp)://\S+', text)
print(result.group())
text = 'hello world'
result01 = re.search('\w+', text)
result02 = re.search('\w+?', text)
print(result02.group())
text = '<h1>我是一级标题<h1>'
result01 = re.search('<.+>', text)
print(result01.group())
result02 = re.search('<.+?>', text)
print(result02.group())
text = '12'
result = re.match("0$|[1-9]\d?$|100$",text)
print(result.group())
5.转义字符串和原生字符串
import re
text = 'hello\nworld'
print(text)
text = r'hello\nworld'
print(text)
text = 'apple price is $99, orange price is $100'
result = re.findall('$\d+', text)
print(result)
text = "\cba c"
result = re.match(r"\c",text)
print(result.group())
6.分组
import re
text = 'apple price is $99, orange price is $100'
result = re.match('.+$\d+.+$\d+', text)
print(result.group())
result02 = re.match('.+($\d+).+($\d+)', text)
print(result02.group(0))
print(result02.group(1))
print(result02.group(2))
print(result02.groups())
7.re中的函数
import re
text = "apple price is $99,orange price is $88"
result = re.findall(r'$\d+', text)
print(result)
text = "nihao zhongguo,hello world"
new_text = text.replace(" ","")
new_text = re.sub(r' |,','\n', text)
'''
nihao
zhongguo
hello
world
'''
print(new_text)
html = """
<div class="job-detail">
<p>1. 3年以上相关开发经验 ,全日制统招本科以上学历</p>
<p>2. 精通一门或多门开发语言(Python,C,Java等),其中至少有一门有3年以上使用经验</p>
<p>3. 熟练使用ES/mysql/mongodb/redis等数据库;</p>
<p>4. 熟练使用django、tornado等web框架,具备独立开发 Python/Java 后端开发经验;</p>
<p>5. 熟悉 Linux / Unix 操作系统 </p>
<p>6. 熟悉 TCP/IP,http等网络协议</p>
<p>福利:</p>
<p>1、入职购买六险一金(一档医疗+公司全额购买商业险)+开门红+全额年终奖(1年13薪,一般会比一个月高)</p>
<p>2、入职满一年有2次调薪调级机会</p>
<p>3、项目稳定、团队稳定性高,团队氛围非常好(汇合员工占招行总员工比例接近50%);</p>
<p>4、有机会转为招商银行内部员工;</p>
<p>5、团队每月有自己的活动经费,法定节假日放假安排;</p>
<p>6、办公环境优良,加班有加班费(全额工资为计算基数,加班不超过晚上10点,平日加班为时薪1.5倍,周末加班为日薪2倍,周末加班也可优先选择调休,管理人性化)。</p>
</div>
"""
new_html = re.sub(r'<.+?>', '', html)
'''
1. 3年以上相关开发经验 ,全日制统招本科以上学历
2. 精通一门或多门开发语言(Python,C,Java等),其中至少有一门有3年以上使用经验
3. 熟练使用ES/mysql/mongodb/redis等数据库;
4. 熟练使用django、tornado等web框架,具备独立开发 Python/Java 后端开发经验;
5. 熟悉 Linux / Unix 操作系统
6. 熟悉 TCP/IP,http等网络协议
福利:
1、入职购买六险一金(一档医疗+公司全额购买商业险)+开门红+全额年终奖(1年13薪,一般会比一个月高)
2、入职满一年有2次调薪调级机会
3、项目稳定、团队稳定性高,团队氛围非常好(汇合员工占招行总员工比例接近50%);
4、有机会转为招商银行内部员工;
5、团队每月有自己的活动经费,法定节假日放假安排;
6、办公环境优良,加班有加班费(全额工资为计算基数,加班不超过晚上10点,平日加班为时薪1.5倍,周末加班为日薪2倍,周末加班也可优先选择调休,管理人性化)。
'''
print(new_html)
text = "nihao zhongguo,hello world"
result = re.split(r' |,', text)
print(result)
text = "apple price is 34.56"
r = re.compile(r"""
\d+ # 整数部分
. # .
\d+ # 小数部分
""", re.VERBOSE)
result = re.search(r, text)
print(result.group())
8.