正则表达式

1、匹配时间格式(2018-10-152、匹配时间格式(2018-10-15 12:30:303、匹配一个浮点数 

4、匹配0-99之间的数字

5、8到20位的密码包含数字、字母、下划线

6、匹配出邮箱地址,且@符号之前有4到 20位

7、匹配1-100之间的数

8、匹配文章的阅读的次数 s = "阅读次数为 9999"

9、验证字符串的组成规则,第一个须为数字,后面可以是字母、数字、下划线,总长度为5-20位

10、匹配座机号码
  010-67132692,其构造规则为[3位数字][-][8位数字]
  或者
  0431-4978981,其构造规则为[4位数字][-][7位数字]

11、对输入的qq号进行匹配(qq匹配规则:长度为5-10位,纯数字组成,且不能以0开头。)

12、对电话号码进行匹配(匹配要求:匹配成功的电话号码位数为11位的纯数字,且以1开头,第二位必须是:3、7、8中的一位,即只匹配

13*********、17*********、18*********的电话号码)。

13、s = "asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd"查找字符串中有多少个af

14、s = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr"取出字符串中的所有字母

15、s = "zhangsan   lisi  wangwu"规则是按照空格出现一次或者多次切割

16、s = "c:\\abc\\a.txt" 用正则\\切割

17、s = "wer8934605juo123wa89320571f"将连续5个以上数字替换成#

18、s = "cudddbhuuujddd"将多个重复字母替换成&

19、s = "min tian jiu yao fang jia le ,da jia"获取长度为3个字母的单词

20、s = 'THREE people at HERE do some THING'找出以字母e结尾的单词,忽略大小写

21、s = "cudddbhuuujddd"将多个重复字母替换成一个字母(比如ddd替换成d)

22、s = "我我...我我...我要..要要...要要...学学学...学学...编编编..编程..程.程...程...程"将字符串变成 '我要学编程'

23、s = """
<div>
    <div>
        <img src='1.png'>
        <img src='2.png'>
        <img src='3.png'>
        <img src='4.png'>
        <img src='5.png'>
        <img src='6.png'>
    </div>
    <div>
        <img src='11.png'>
        <img src='22.png'>
        <img src='33.png'>
        <img src='44.png'>
        <img src='55.png'>
        <img src='66.png'>
    </div>
</div>
"""
找出
<img src='1.png'>
<img src='2.png'>
<img src='3.png'>
<img src='4.png'>
<img src='5.png'>
<img src='6.png'>

24、s = "<div class='a'>正则<span>表达式</span><b style='color:red'>练习</b></div>"去掉div和b标签
  结果: 正则<span>表达式</span>练习

25、你要怎样匹配姓Nakamoto的名字?
  我们假定名字在姓前面出现,姓和名第一个字母大写。
  下面的这些要被匹配:
  Satoshi Nakamoto,
  Alice Nakamoto,
  Robocop Nakamoto;
  而下面这些不能被匹配:nulu Nakamoto(名字首字母没有大写)
  Mr. Nakamoto(Mr.是称号,类似的Dr. Ms. Mrs.之类的都不行)
  Nakamoto(没写名字)
  Satoshi nakamoto(姓第一个字母没有大写)
  s = """
  Satoshi Nakamoto
  satoshi Nakamoto
  Alice Nakamoto
  Mr. Nakamoto
  Robocop Nakamoto
  Nakamoto
  Satoshi nakamoto
  """
 把符合名字的单词找出来

26、s = """121fefe
  3qsqse2
  ded6d32
  aaaaa1a
  1234adc
  """
找出每行中只有3个数字的字符串
结果:
121fefe 
ded6d32

 -------------------答案---------------------

import re
1、res = re.search(r'^\d{4}.\d{2}.\d{2}$','2018-10-15')
2、res =re.search(r'^\d{4}.\d{2}.\d{2}\s\d+.\d{2}.\d{2}$','2018-10-15 12:30:30')
3、res = re.search(r'(^[1-9]\d*|^0.\d*)', '10.314')
4、res = re.search(r'^\d{1,2}$','100')
5、res = re.search(r'^\w{8,20}$', '88888888')
6、res = re.search(r'^\d{4,20}@\d+.(com|cn|net|com.cn)', '1234@163.com')
7、res = re.search(r'^(\d{1,2}$|\d{1,2}0$)', '12')
8、res = re.search(r'\d+$', '阅读次数为 9999')
9、res = re.search(r'^\d\w{4,19}', '1q2w3e4r5t6y')
10、res = re.search(r'(^0\d{2}-\d{8}$|^0\d{3}-\d{7}$)', '010-67132692')
11、res = re.search(r'^[^0]\d{4,9}$', '66666')
12、res = re.search(r'^1(3|7|8)\d{9}$', '13737519134')
13
  s = "asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd"   ret = re.compile(r'af')   res = ret.findall(s)   print(len(res)) 14
  s = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr"   ret = re.compile(r'[a-zA-Z]')   res = ret.findall(s)   print(res) 15
  s = "zhangsan lisi wangwu"   ret = re.compile(r'\s+')   res = ret.split(s)   print(res) 16
  s = "c:\\abc\\a.txt"   ret = re.compile(r'\\')   res = ret.split(s)   print(res) 17
  s = "wer8934605juo123wa89320571f"   ret = re.compile(r'\d{5,}')   res = ret.sub('#', s)   print(res) 18
  s = "cudddbhuuujddd"   ret = re.compile(r'([a-zA-Z])\1+')   res = ret.sub('&', s)   print(res) 19
  s = "min tian jiu yao fang jia le ,da jia"   ret = re.compile(r'\b\w{3}\b')   res = ret.findall(s)   print(res)

 

posted @ 2018-12-26 22:06  菜鸟SSS  阅读(562)  评论(0编辑  收藏  举报