正则表达式(读书过程所记未整理)

\d 表示一位数字字符  \d{3} 表示3个数字字符

匹配电话比如400-400-1118

import re

phone_number = re.compile(r'\d{3}-\d{3}-\d{4}')

mo = phone_number.search(r'for a number is 400-400-4000')

print(mo.group())

**********************************************************************

phone_number = re.compile(r('(\d{3})-(\d{3})-(\d{4}))  与之前的区别是进行了简单的分组

mo = phone_number.search(r'for a number is 400-400-4000')

print(mo.group(0), mo.group(1), mo.group(2))

*************************************************************************

|称为管道

?表明它前面的分组在这个模式中是可选的

batRegex = re.compile(r'Bat(wp)?man')

mo1 = batRegex.search('The Adventures of Batman')

mo1.group()

*表示匹配0次或多次

如:

bat = re.compile(r'Bat(wo)?man')

mo1 = bat.search(r'Batmanasxas')

mo1.group()               ->>>>>Batman

mo1 = bat.search(r'Batwowowowowomanasxas')

mo1.group()               ->>>>>Batwowowowowoman

+表明匹配一次或多次,

{}可以指定匹配的次数  {}通常是贪心匹配,在{}?则是最小匹配方式

\d 匹配数字

\D 除0-9的数字以外的任何字符

\w 在任何字母、数字或下划线字符

\W 除字母、数字和下划线以外的任何字符

\s 空格、制表符或换行符

\S 除空格、制表符或换行符

 

[^0123456789] 匹配除了数字之外的字符

 

no = re.compile(r'(.*)')

no.search('Servr the public trust.\n pasdasf\n').group()   ->>>>>>>>>>>>>Servr the public trust.

no = re.compile(r'(.*), re.DOTALL)

no.search('Servr the public trust.\n pasdasf\n').group() ->>>>>>>>>>>>>>'Servr the public trust.\n pasdasf\n

 

?匹配零次或一次前面的分组。
*匹配零次或多次前面的分组。
+匹配一次或多次前面的分组。
{n}匹配 n 次前面的分组。
{n,}匹配 n 次或更多前面的分组。
{,m}匹配零次到 m 次前面的分组。
{n,m}匹配至少 n 次、至多 m 次前面的分组。
{n,m}?*?+?对前面的分组进行非贪心匹配。
^spam 意味着字符串必须以 spam 开始。
spam$意味着字符串必须以 spam 结束。
.匹配所有字符,换行符除外。
\d\w \s 分别匹配数字、单词和空格。
\D\W \S 分别匹配出数字、单词和空格外的所有字符。
[abc]匹配方括号内的任意字符(诸如 ab c)。
[^abc]匹配不在方括号内的任意字符。

no = re.compile(r'robocop', re.I') 可以匹配任意大小写的字符串

*****************************************************************

def likestrip(text, chuqu=''):
if chuqu == '':
mod = re.compile(r'^*|(\s)*$')
if mod.search(text):
print(mod.sub('', text))
else:
mod = re.compile('^['+chuqu+']*|['+chuqu+']*$')
if mod.search(text):
print(mod.sub('', text))
print(text)
likestrip('wer ', 'w')
编写一个类似于strip()的函数

 

posted @ 2018-03-18 15:26  Benguoby2  阅读(102)  评论(0编辑  收藏  举报