['hello', 'sb']正则表达式

课堂
# 取数字和普通字符
import re
# ret=re.findall("\w+","yuan123$888^%")
# print(ret)
# # [‘yuan123‘, ‘888‘]

# #取i
# ret=re.findall(r"i\b","wo i ni")
# print(ret)
# # [‘i‘, ‘i‘]

# #闹不清
# ret=re.findall(r"bc\\l","abc\le")
# print(ret)

# ret=re.search(r‘-blog-aticles-(?P<year>20[01]\d)-(?P<month>\d+)‘,‘-blog-aticles-2005-12‘)
# print(ret.group(‘year‘))
# print(ret.group(‘month‘))
# 2005


# ^:匹配字符串的开始位置
# ret=re.findall(‘^李.‘,‘李连杰,李杰,李刚,张学友,郭富城‘)
# print(ret)
# [‘李连‘]


# $匹配字符串的末尾位置
# ret=re.findall(‘..n$‘,‘yabn杰,刚,王超,李连杰yuan‘)
# print(ret)
# [‘yuan‘]


# .:除换行符以外的任意一个符号
# ret=re.findall(‘李.‘,‘李连杰,李杰,王超,郭富城‘)
# print(ret)
# [‘李连‘, ‘李杰‘]

# \d{}每个数字取几位数
# ret=re.findall(‘\d{2}‘,‘12,123,1234,12345‘)
# print(ret)
# [‘12‘, ‘12‘, ‘12‘, ‘34‘, ‘12‘, ‘34‘]


# *:(0到无穷)包括131
# ret=re.findall(‘131\d*‘,‘131245,253617,131,13122344452,123456‘)
# print(ret)


# \d+:1到无穷以下不包括131
# ret=re.findall(‘131\d+‘,‘13111332241,123,131,456,1234,131246‘)
# print(ret)
# [‘13111332241‘, ‘131246‘]


# -?\d:一位一位取值
# ret=re.findall(‘-?\d‘,‘131,41,-11,12,-4‘)
# print(ret)
# [‘1‘, ‘3‘, ‘1‘, ‘4‘, ‘1‘, ‘-1‘, ‘1‘, ‘1‘, ‘2‘, ‘-4‘]

补充
正则表达式的元字符有. ^ $ * ? { [ ] | ( )
.表示任意字符
[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。
^ 如果放在字符串的开头,则表示取非的意思。[^5]表示除了5之外的其他字符。而如果^不在字符串的开头,则表示它本身。

具有重复功能的元字符:
* 对于前一个字符重复0到无穷次
对于前一个字符重复1到无穷次
?对于前一个字符重复0到1次
{m,n} 对于前一个字符重复次数在为m到n次,其中,{0,} = *,{1,} = , {0,1} = ?
{m} 对于前一个字符重复m次
正则表达式(可以称为REs,regex,regex pattens)是一个小巧的,高度专业化的编程语言,它内嵌于python开发语言中,可通过re模块使用。正则表达式的

pattern可以被编译成一系列的字节码,然后用C编写的引擎执行。下面简单介绍下正则表达式的语法

正则表达式包含一个元字符(metacharacter)的列表,列表值如下:    . ^ $ * + ? { [ ] \ | ( )

    1.元字符([ ]),它用来指定一个character class。所谓character classes就是你想要匹配的字符(character)的集合.字符(character)可以单个的列出,也可以通过"-"来分隔两个字符来表示一 个范围。例如,[abc]匹配a,b或者c当中任意一个字符,[abc]也可以用字符区间来表示---[a-c].如果想要匹配单个大写字母,你可以用 [A-Z]。     元字符(metacharacters)在character class里面不起作用,如[akm$]将匹配"a","k","m","$"中的任意一个字符。在这里元字符(metacharacter)"$"就是一个普通字符。     2.元字符[^]. 你可以用补集来匹配不在区间范围内的字符。其做法是把"^"作为类别的首个字符;其它地方的"^"只会简单匹配 "^"字符本身。例如,[^5] 将匹配除 "5" 之外的任意字符。同时,在[ ]外,元字符^表示匹配字符串的开始,如"^ab+"表示以ab开头的字符串。  import re
s="<div>yuan<img></div><a href=""></div"
ret=re.findall("<div>.*?</div>",s)
print(ret)

# ret="hello,sb".split(‘,‘)
# print(ret)
[‘hello‘, ‘sb‘
]

# 切数字
# ret=‘hello23nnn23jjjj4‘
# s=re.split(‘\d+‘,ret,)
# print(s)
[‘hello‘, ‘nnn‘, ‘jjjj‘, ‘‘]
代替

# ret=‘hello world‘.replace(‘world‘,‘sb‘)
# print(ret)
多个代替
ret=re.sub(‘w.{2,3}d‘,‘cnm‘,‘hello world waad‘,2)
# print(ret)
# hello cnm cnm

# ret=re.subn(‘w.{2,3}d‘,"sb",‘hello world waad‘)
# print(ret)

(‘hello sb sb‘, 2)

#           s=‘hello 123 world 456‘

# ret=re.sub(‘\d+‘,‘222‘,s)# print(ret)# hello 222 world 222
    re.finditer() 返回一个迭代器# ret=re.finditer(‘\d+‘,‘ajdgfua234sgfakfb456akfnfnk567‘)# print(ret)# print(next(ret).group())# print(next(ret).group())# print(next(ret))#  <callable_iterator object at 0x000002CC3A98E240>#  234#  456#  <_sre.SRE_Match object; span=(27, 30), match=‘567‘>

调用系统命令import subprocess# s=subprocess.Popen(‘dir‘,shell=True,stdout=subprocess.PIPE)# print(s.stdout.read().decode(‘gbk‘))# C:\Users\DELL\AppData\Local\Programs\Python\Python36\python.exe C:/Users/DELL/PycharmProjects/模块/爬虫.py#  驱动器 C 中的卷是 OS#  卷的序列号是 5823-575E##  C:\Users\DELL\PycharmProjects\模块 的目录## 2017/06/27  15:23    <DIR>          .# 2017/06/27  15:23    <DIR>          ..# 2017/06/25  20:27                10 a.txt# 2017/06/25  17:51                 0 b.txt
 
 
 

['hello', 'sb']正则表达式

时间: 2024-10-12 13:41:13

['hello', 'sb']正则表达式的相关文章

2019-05-23 Java学习日记之正则表达式&amp;常用工具类

正则表达式 概述: 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串. 其实就是一种规则.有自己特殊的应用. 作用: 比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度, 这个限制长度的事情就是正则表达式做的 package com.regex; public class Demo1 { public static void main(String[] args) { // 非正则表达式实现 System.out.println(checkQQ("012345"))

Java正则表达式Pattern和Matcher详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个正则表达式经编译后的表现模式. Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类

初学正则表达式2(在Perl下使用)

/** * 在Perl下的使用: * #华氏温度和摄氏温度之间的转换功能更加完善 print "请输入要转换的温度,例如:20C/30F\n"; $input = <STDIN>; #获取输入的内容 chomp($input); #去掉文本结尾的换行 if($input =~ m/^([-+]?[0-9]+(\.[0-9]*)?) *([CFcf])$/){ # m/^([-+]?[0-9]+)(\.[0-9]*)?([CFcf])$/等价于: $inputNum = $1

JAVA 正则表达式 (超详细)

(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的JavaJDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式.正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性.在Unix世界里,正则表达式几乎没有

C# 正则表达式 结合 委托

使用正则表达式匹配字符串的同时,使用委托事件,处理每一个匹配项 示例代码: string msg = "我的邮箱是[email protected]的邮箱是[email protected]减肥看到了撒[email protected]发动机是啦"; //通过委托实现的字符串替换 msg = Regex.Replace(msg, @"([-a-zA-Z0-9_.]+)(@[-a-zA-Z0-9]+(\.[a-zA-Z0-9]+){1,})", GetReplaceS

正则表达式(转载)

1.正则表达式的知识要点 1.正则表达式是什么? 正则表达式是一种可以用于模式匹配和替换的强有力的工具. 2.正则表达式的优点? 更少的代码,更高的效率. 3.正则表达式如何使用? 在下面的教程中我们将学习到正则表达式的用法. 4.正则表达式的缺点? 需要花一定的时间学习,这个时间由个人决定,一天或者更久一些. 2.正则表达式的各种符号及其含义 常用的符号 . 表示任意一个字符 \s 空格字符(空格键, tab, 换行, 换页, 回车) \S 非空格字符([^\s]) \d 一个数字,(相当于[

正则表达式在Java中使用

正则表达式 定义 用一组特殊的字符来描述一组字符串的格式 用于验证字符串是否满足格式 不关心字符串的内容是否有效 1. 基本正则表达式所谓正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求. “.”和"\" "."点儿,在正则表达式中标是任意一个字符."\"在正则表达式中是转意字符,当我们需要描述一个已经被正则表达式使用的特殊字符时,我们就可以通过使用"\"将其

Python实战之正则表达式RE/re学习笔记及简单练习

# .,\w,\s,\d,,^,$# *,+,?,{n},{n,},{n,m} # re模块用于对python的正则表达式的操作.## 字符:## . 匹配除换行符以外的任意字符# \w 匹配字母或数字或下划线或汉字# \s 匹配任意的空白符# \d 匹配数字# \b 匹配单词的开始或结束# ^ 匹配字符串的开始# $ 匹配字符串的结束## 次数:## * 重复零次或更多次# + 重复一次或更多次# ? 重复零次或一次# {n} 重复n次# {n,} 重复n次或更多次# {n,m} 重复n到m次

python 全栈 linux基础 (部分)正则表达式 grep sed

/etc/profile /etc/bashrc  .变量添加到shell环境中,永久生效. /root/.bashrc /root/.bash_profile 正则表达式 定义:正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.(被命令所解释) 三种文本处理工具/命令:grep sed awk grep(过滤) 参数 -n  :显示行号 -o  :只显示匹配的内容 -q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容 -l