正则表达式( Regular expression)是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子。
https://docs.python.org/3/library/re.html
中文教程1
在线的测试https://regex101.com/r/DOc5Nu/1
中文教程2
正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组)
语法:
1
findall(pattern, string, flags=0)
import re
Python 正则表达式 re findall 方法能够以列表的形式返回能匹配的子串
# print (help(re.findall))
# print (dir(re.findall))
findall()关于括号的疑问
https://www.cnblogs.com/one-lightyear/p/6814833.html
https://blog.csdn.net/cashey1991/article/details/8875213
>>> import re
>>> s = "adfad asdfasdf asdfas asdfawef asd adsfas "
>>> reObj1 = re.compile('((\w+)\s+\w+)')
>>> reObj1.findall(s)
[('adfad asdfasdf', 'adfad'), ('asdfas asdfawef', 'asdfas'), ('asd adsfas', 'asd')]
>>> reObj2 = re.compile('(\w+)\s+\w+')
>>> reObj2.findall(s)
['adfad', 'asdfas', 'asd']
>>> reObj3 = re.compile('\w+\s+\w+')
>>> reObj3.findall(s)
['adfad asdfasdf', 'asdfas asdfawef', 'asd adsfas']
按以上代码例子讲解:
findall函数返回的总是正则表达式在字符串中所有匹配结果的列表,此处主要讨论列表中“结果”的展现方式,即findall中返回列表中每个元素包含的信息。
@1.当给出的正则表达式中带有多个括号时,列表的元素为多个字符串组成的tuple,tuple中字符串个数与括号对数相同,字符串内容与每个括号内的正则表达式相对应,并且排放顺序是按括号出现的顺序。
@2.当给出的正则表达式中带有一个括号时,列表的元素为字符串,此字符串的内容与括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。
@3.当给出的正则表达式中不带括号时,列表的元素为字符串,此字符串为整个正则表达式匹配的内容。
版权声明:本文为CSDN博主「开水」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cashey1991/article/details/8875213
re.split
https://stackoverflow.com/questions/7501609/python-re-split-vs-split
PYTHON的RE模块理解(RE.COMPILE、RE.MATCH、RE.SEARCH)
可以使用re.split来分割字符串,如:re.split(r'\s+', text);
将字符串按空格分割成一个单词列表。
原型:
re.split(pattern, string, maxsplit=0)
通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。
例如:
re.split(‘\W+’, ‘Words, words, words.’)
[‘Words’, ‘words’, ‘words’, ”]
如果字符串不能匹配,将会返回整个字符串的list。
re.split(“a”,”bbb”)
[‘bbb’]
https://www.crifan.com/python_re_search_vs_re_findall/
https://zhuanlan.zhihu.com/p/37900841
Python中re(正则表达式)模块学习
Python3正则匹配re.split,re.finditer及re.findall函数用法详解