正则表达式

正则表达式

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。



在python中实现正则,首先导入re模块。

匹配单个字符:

1"."   匹配除了换行符以外任意的字符

输入:print(re.findall(r".","12345\nqwer"))

输出:['1', '2', '3', '4', '5', 'q', 'w', 'e', 'r']

2.[] 字符集合,表示匹配包涵方括号中任意一个字符

输入:print(re.findall(r"[123]","12341256"))

输出:['1', '2', '3', '1', '2']

3.[0-9]  匹配数字

输入:print(re.findall(r"[0-9]","12a34\t125674$$@dffs890"))

输出:['1', '2', '3', '4', '1', '2', '5', '6', '7', '4', '8', '9', '0']

4.\d  匹配数字

输入:print(re.findall(r"\d","12a34\t125674$$@dffs890"))

输出:['1', '2', '3', '4', '1', '2', '5', '6', '7', '4', '8', '9', '0']

5.[^0-9] 匹配非数字^ 写[]中我们称之为脱字节

输入:print(re.findall(r"[^0-9]","21324r\nxc\rvbnmrtyu45678"))

输出:['r', '\n', 'x', 'c', '\r', 'v', 'b', 'n', 'm', 'r', 't', 'y', 'u']

6.\D  功能同[^0-9]

7.[a-z] 匹配小写字母

输入:print(re.findall(r"[a-z]","12a34\t125674$$@dffs890"))

输出:['a', 'd', 'f', 'f', 's']

8.[A-Z] 匹配大写字母

输入:print(re.findall(r"[A-Z]","12a34\t125AWERE674$$@dffs890"))

输出:['A', 'W', 'E', 'R', 'E']

9.[a-zA-Z0-9_] 匹配字母数字下划线

输入:print(re.findall(r"[0-9a-zA-Z_]","1-2a34\t125AW674$$@d90"))

输出:['1', '2', 'a', '3', '4', '1', '2', '5', 'A', 'W', '6', '7', '4', 'd', '9', '0']

10.\w  匹配字母数字下划线

输入:print(re.findall(r"\w","1-2a34\t125674$$@d890"))

输出:['1', '2', 'a', '3', '4', '1', '2', '5', '6', '7', '4', 'd', '8', '9', '0']

11.[^a-zA-Z0-9_] 匹配非字母数字下划线

输入:print(re.findall(r"[^0-9a-zA-Z_]","21324r\nxc\rvbnmrtyu45678"))

输出:['\n', '\r']

12.\W  功能同[^a-zA-Z0-9_]

13\s 匹配空白符  效果同[ \r\n\t\f]

14.\S 匹配非空白符 效果同[^ \r\n\t\f]

^ 行首匹配

$ 行尾匹配

15.\A 匹配字符串的开始,与^区别即使在re.M的模式下,也不匹配其他行的行首

输入:# print(re.findall(r"^12$","345\n12341234"))

输出:['123']

16.\Z 匹配字符串的结束,与$区别即使在re.M的模式下,也不匹配其他行的行首

输入:print(re.findall(r"12\Z","12455\n12",flags=re.M))

输出:['12']

17.\b 匹配一个单词的边界, 写左边匹配左边界,写在右边匹配右边界,

写在两边匹配整个单词

输入:print(re.findall(r"er\b","erner erver"))

输出:['er', 'er']

\B 匹配非单词的边界,写左边左边界不匹配,写在右边右边界不匹配,

写在两边,两边的边界不匹配。

输入:print(re.findall(r"er\B","erner erver"))

输出:['er', 'er']

17.(xyz) 作为一个整体来进行匹配

输入:print(re.findall(r"123","12354123"))

输出:['123', '123']

18.x?匹配0个或者一个x

输入:print(re.findall(r"1?","123554"))

输出:['1', '', '', '', '', '', '']

19.x* 匹配0个或者多个[贪婪匹配]

输入:print(re.findall(r".*","ddfdfasdfabddddddcfghjkabc"))

输出:['ddfdfasdfabddddddcfghjkabc', '']

20.x+ 匹配1个或者多个[贪婪匹配]

输入:print(re.findall(r"d+","ddfdfasdfabcfghjkabc"))

输出:['dd', 'd', 'd']

21.x{n} 匹配指定的n个x

输入:print(re.findall(r"[a-z]{5}","ddfdfasdfabcfghjkdasdaabcd"))

输出:['ddfdf', 'asdfa', 'bcfgh', 'jkdas', 'daabc']

22.x{n,}匹配至少的n个x[贪婪匹配]

输入:print(re.findall(r"[a-z]{5,}","ddfdfasdfabcfghjkabc"))

输出:['ddfdf', 'asdfa', 'bcfgh', 'jkdas', 'daabc']

23.x|y  |表示匹配x或y

输入:print(re.findall(r"12|34","12233434467123456"))

输出:['12', '34', '34', '12', '34']

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容