正则表达式的常用字符整合文档

1、普通字符
匹配规则:匹配相应的普通字符
e.g.
In [9]: re.findall("abc","abcksjdabclkjks")
Out[9]: ['abc', 'abc']


2、或:
元字符:ab | cd 
匹配规则:匹配|两边任意一个正则表达式符合的情况
e.g.
In [11]: re.findall("ab|bc","abcdbdcabdcdbcdeabd")
Out[11]: ['ab', 'ab', 'bc', 'ab']
* | 两侧不要有没用的空格


3、匹配单一字符
元字符: .
匹配规则:匹配除了换行之外的任意字符
e.g.
In [13]: re.findall("f.o","foo is not fao is foo")
Out[13]: ['foo', 'fao', 'foo']


4、匹配开始位置
元字符: ^
匹配规则:匹配一个字符串的开始位置
e.g.
In [24]: re.findall("^hello","hello world hello")
Out[24]: ['hello']


5、匹配结束位置
元字符: $
匹配规则:匹配目标字符串的结束位置
e.g.
In [25]: re.findall("py$","hello.py")
Out[25]: ['py']


6、匹配重复:
元字符:  *
匹配规则:匹配前面的正则表达式重复0次或多次
e.g.
In [26]: re.findall("fo*","fooofofofsadfo")
Out[26]: ['fooo', 'fo', 'fo', 'f', 'fo']


7、匹配重复
元字符: +
匹配规则:匹配前面的正则表达式重复1次或多次
e.g.
In [32]: re.findall(".+py$","hello.py")
Out[32]: ['hello.py']


8、匹配重复
元字符:?
匹配规则:匹配前面的正则表达式重复0次或1次
e.g.
In [36]: re.findall("ab?","helloabdacdefabc")
Out[36]: ['ab', 'a', 'ab']


9、匹配重复
元字符: {n}
匹配规则:匹配指定的重复次数
e.g.
In [15]:  In [9]: re.findall("ab{3}","abbbbbbbb")
Out[15]: ['abbb']


10、匹配重复
元字符:{m,n}
匹配规则:匹配前面的正则表达式重复m次到n次
e.g.
In [20]:  In [9]: re.findall("ab{2,5}","abbbbbbbbbbbbb")
Out[20]: ['abbbbb']


11、匹配字符集合
元字符:[]
匹配规则:匹配中括号范围内的任意一个字符
[A-Z]
[a-z]
[0-9]
[_0-9a-zA-Z]
e.g.
In [26]:  In [9]: re.findall("[name]","what is your name")
Out[26]: ['a', 'n', 'a', 'm', 'e']


12、匹配字符集合
元字符:[^...]
匹配规则:匹配除指定字符集之外的任意字符
e.g.
In [33]:  In [9]: re.findall("[^_0-9a-z]","what is your name,My name is Arry")
Out[33]: [' ', ' ', ' ', ',', 'M', ' ', ' ', ' ', 'A']


13、匹配任意(非)数字字符
元字符:  \d  (是)   \D (非)
匹配规则:\d匹配任意数字字符  \d匹配任意非数字字符
e.g.
In [37]:  In [9]: re.findall("\d","phone:14752957")
Out[37]: ['1', '4', '7', '5', '2', '9', '5', '7']
e.g.
In [36]:  In [9]: re.findall("\D","phone:14752957")
Out[36]: ['p', 'h', 'o', 'n', 'e', ':']
e.g.
In [45]:  In [9]: re.findall("14\d{5}","phone:14752957")
Out[45]: ['1475295']


14、匹配(非)普通字符(普通字符:数字字母下划线)
元字符: \w  \W
匹配规则:\w 匹配任意一个普通字符  \W 匹配任意非普通字符
           [_0-9a-zA-Z]            [^_0-9a-zA-Z]
e.g.
In [50]:  In [9]: re.findall("\w","hello shuge,zye_")
Out[50]: ['h', 'e', 'l', 'l', 'o', 's', 'h', 'u', 'g', 'e', 'z', 'y', 'e', '_']
e.g.
In [49]:  In [9]: re.findall("\W","hello shuge,zye_")
Out[49]: [' ', ',']


15、匹配(非)空字符
元字符:\s   \S
匹配规则:\s 匹配任意一个空字符  \S匹配任意非空字符
          [\n\t\r\0]
e.g.
In [58]:  In [9]: re.findall("\s","heLLO world\r\n\t")
Out[58]: [' ', '\r', '\n', '\t']
e.g.
In [54]:  In [9]: re.findall("\S","heLLO world")

Out[54]: ['h', 'e', 'L', 'L', 'O', 'w', 'o', 'r', 'l', 'd']

16、匹配起止位置
元字符:\A   \Z
匹配规则:\A 匹配开始位置  \Z匹配结束位置
           ^               $
绝对匹配 \Aabc\Z --->abc(且字符串只是abc)


17、匹配(非)单词边界位置
元字符:\b  \B
匹配规则:\b匹配单词的边界  \B匹配非单词的边界
单词边界:数字字母下划线和其他字符的交接位置为单词的边界
abc$   abc_1 asa  两个单词边界
e.g.
In [78]: re.findall(r"\bis\b","This is a test")

Out[78]: ['is']



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值