常用正则表达式的特殊字符的简单示例和应用

import re
"""
^表示以什么开头,^s表示以s开头,后面可以是任意字符串
. 表示任何字符,不管事中英文还是特殊字符
* 表示前面的字符重复多次
$ 表示的是以什么符号结束
?非贪婪模式,就是从左边开始匹配
()表示只取某个指定的字符串
+ 至少出现一次,例如s.+g就是从第一个g开始,中间不管有什么,只要下一个是s即可
{} 表示前面的符号出现几次,如{2}则是出现两次,{2,}出现两次以上,{2,5}出现两次以上,五次以下
| 表示的是或  
[] 匹配中括号里的任意一个字符,[0-9]表示的是0-9的任何一个数字,[^1]表示的是非1的任何字符,中括号的的特殊字符没有特殊的含义
\s 表示的是空格
\S 表示的只要不是空格的一个字符就可以 
\w 表示的是[a-zA-Z0-9]
\W 表示的不是w表示的含义即可
[\u4E00-\u9FA5] 表示的是中文
\d 表示的数字
"""
line = 'assoooooooooooongtengshsfjkgteng123'
regex_str = '^s.*'
if re.match(regex_str,line):
   print('yes')
else:
   print('no')
   
regex_str1 = '.*3$'
line = 'assoooooooooooongtengshsfjkgteng123'
if re.match(regex_str1,line):
   print('yes')

regex_str2 = '.*(s.*g).*'   #左边贪婪,右边贪婪
line = 'assoooooooooooongtengshsfjkgteng123'
match_obj = re.match(regex_str2,line)
if match_obj:
   print(match_obj.group(1))
   
regex_str3 = '.*?(s.*g).*'  #左边非贪婪,右边贪婪
line = 'assoooooooooooongtengshsfjkgteng123'
match_obj1 = re.match(regex_str3,line)
if match_obj1:
   print(match_obj1.group(1))
   
regex_str4 = '.*?(s.*?g).*'  #左边非贪婪,右边非贪婪
line = 'assoooooooooooongtengshsfjkgteng123'
match_obj4 = re.match(regex_str4,line)
if match_obj4:
   print(match_obj4.group(1))

regex_str5 = '.*(s.+g).*'
line = 'assoooooooooooongtengshsfjkgteng123'
match_obj5 = re.match(regex_str5,line)
if match_obj5:
   print(match_obj5.group(1))

regex_str6 = '.*(g.{2,7}g).*'
line = 'assoooooooooooongtengshsfjkgteng123'
match_obj6 = re.match(regex_str6,line)
if match_obj6:
   print(match_obj6.group(1))

regex_str7 = '([fsdao].*)'
line = 'assoooooooooooongtengshsfjkgteng123'
match_obj7 = re.match(regex_str7,line)
if match_obj7:
   print(match_obj7.group(1))

regex_str8 = '.*([\u4E00-\u9FA5]+大学)'#贪婪模式
line1 = 'study in 上海交通大学'
match_obj8 = re.match(regex_str8,line1)
if match_obj8:
   print(match_obj8.group(1))

regex_str9 = '.*?([\u4E00-\u9FA5]+大学)'
line1 = 'study in 上海交通大学'
match_obj9 = re.match(regex_str9,line1)
if match_obj9:
   print(match_obj9.group(1))

regex_str10 = '.*?(\d+)'#'.*(\d{7})'
line2 = 'dsad 3214134'
match_obj10 = re.match(regex_str10,line2)
if match_obj10:
   print(match_obj10.group(1))

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值