Re——正则表达式_常识

Re常识(只写的较为重要的):

1、. —> 在默认模式下,它匹配除换行以外的任何字符。

eg: >>> re.search('...','123').group()
	'123'

2、 ^ —> 匹配字符串的开头,并且在多行模式下也在每个换行之后立即匹配。

eg: >>> re.search('^2...','2123').group()
	'2123'
	>>> re.search('2...','12123').group()
	'2123'

3、$ —> 匹配字符串的末尾,或者刚好在字符串末尾的换行之前,在多行模式下也匹配换行之前。


4、* —> 导致产生的RE匹配前一个RE的0个或多个重复[0, +∞)。


5、 + —> 导致产生的RE匹配前一个RE的1个或多个重复(0, +∞)。


6、 ? —> 导致产生的RE匹配前面的RE的0次或一次。


7、 *?, +?, ?? —> “*”、“+”和“?”限定词都是贪婪的;它们匹配尽可能多的文本。而在它们后面加上?则是使其匹配最少的字符。

eg: >>> re.search('.+>','123>abc>')
	<_sre.SRE_Match object; span=(0, 8), match='123>abc>'>
	>>> re.search('.+?>','123>abc>')
	<_sre.SRE_Match object; span=(0, 4), match='123>'>

8、{m} —> 指定要匹配前一个RE的m个副本。


9、 {m,n} —> 指定要匹配前一个RE的m到n个副本。


10、 {m,n}? —> 指定要匹配前一个RE的m到n个副本,尽可能的少匹配字符。

eg: >>> re.search('.{2,5}','123456').group()
	'12345'
	>>> re.search('.{2,5}?','123456').group()
	'12'

11、(…) —> 捕获组,可以让在括号里面的匹配串为一个整体。

eg: >>> re.search('.(12)+', 'a1212').group()
	'a1212'

12、(?P…) —> 命名捕获组。
13、 (?P=name) —> 使用命名的捕获组。

eg: >>> re.search('(?P<par>12) (?P=par)','12 12')
	<_sre.SRE_Match object; span=(0, 5), match='12 12'>

————2020年4月12日 XXX


posted @ 2020-04-12 21:34  souldom  阅读(161)  评论(0编辑  收藏  举报