正则表达式
1.正则表达式语法
2.re模块主要方法
2.1直接使用re模块方法
>>> import re #导入re模块
>>> text = 'alpha. beta....gamma delta' #测试用的字符串
>>> re.split('[\. ]+', text) #使用指定字符作为分隔符进行分隔
['alpha', 'beta', 'gamma', 'delta']
>>> re.split('[\. ]+', text, maxsplit=2) #最多分隔2次
['alpha', 'beta', 'gamma delta']
>>> re.split('[\. ]+', text, maxsplit=1) #最多分隔1次
['alpha', 'beta....gamma delta']
>>> pat = '[a-zA-Z]+'
>>> re.findall(pat, text) #查找所有单词
['alpha', 'beta', 'gamma', 'delta']
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
def rev3(s):
'''考虑开头或结束有空格的情况'''
import re
t = re.split('\s+', s.strip())
t.reverse()
return ' '.join(t)
def rev4(s):
'''考虑开头或结束有空格的情况'''
import re
t = re.split('\s+', s.strip())
return ' '.join(reversed(t))
查找字符串中最长的数字子串
def longest1(s):
'''查找所有连续数字'''
import re
t = re.findall('\d+', s)
if t:
return max(t, key=len)
return 'No'
def longest2(s):
'''使用非数字作为分隔符'''
import re
t = re.split('[^\d]+', s)
if t:
return max(t, key=len)
return 'No'