python的正则表达式

作者&投稿:屠月 (若有异议请与网页底部的电邮联系)
~

1,正则表达式的一些内容

        正则表达式主要是用来匹配文本中需要查找的内容,例如在一片文章中找出电话号码,就中国的来说11位纯数字(不说座机),则使用"\d{11}" 意味匹配数字11次,就能准确的查找出文本中的电话号码. 还有就是在编写网络爬虫的时候需要提取很多超链接再次进行爬取,使用正则表达式就很方便.直接匹配http开头就行,当然也可以使用beautifulsoup的select方法.

看下面的程序看看正则表达提取文本中的邮箱:


\w 匹配字母,数字,下划线 

+ 匹配1次或者多次
re是正则表达式的工具包,工具包出错的话在anaconda的命令行输入"pip install re"安装,其他的工具包也是如此.

re.compile()中的r示意\不是转义字符,也就是保持后面字符串原样,findall返回一个列表.下面还有一个版本的程序略有不同.


compile的另一个参数re.IGONORECASE(忽略大小写),还可以是re.DORALL,多行模式,具体功能也是模糊不清,不过在使用通配符 . 匹配的时候加上re.DOTALL参数能够匹配换行.如果希望忽略大小写和多行模式都开启可以使用re.compile(r'....',re.IGNORECASE|re.DOTALL) .

表达式使用( ),对匹配到的内容分为3组 也就是(\w+)出现字母,数字,下划线一次或多次,这个分组就是下面使用match对象的grou()方法的时候的参数.不给参数和参数0都是得到整个匹配到的内容,  参数1得到第一个括号匹配到的内容,以此类推参数2和3,如果没有括号分组的话使用参数会出现错误.
search( )查找和正则式匹配的内容,只匹一次后面的那个找不到.返回一个match对象


\w 匹配字母,数字,下划线

\W 匹配字母,数字.下划线之外的所有字符

\d 匹配数字

\D 匹配非数字

\s 匹配空格,制表符,换行符

\S匹配除空格制表符,换行符之外的其他字符

[ .... ]定义自己的匹配,如[aeiouAEIOU ]匹配所有的元音字母,注意不是匹配单词.

{最少次数,最多次数},例如{3,9} 匹配3-9次,{ ,10}匹配0-10次. 默认为匹配最多次数(贪心匹配),非贪心模式在后面加上问号 


?  可选 0次或者1次吧  

+匹配1次或多次

*匹配0次或者多次

^ 判断开头 ^\d 如果待匹配串是数字开头则返回第一个数字

$判断结尾  \d$  如果待匹配串是数字结尾则返回最后一个数字

.   通配符,匹配除换行之外的所有字符

   \d{11}  匹配数字11次

    . * 匹配所有字符除 换行

[a-zA-Z0-9._%+-]  小写和大写字母、数字、句点、下划线、百分号、加号或短横

[a-zA-Z]{2,4} 匹配字母 2 - 4次




Python正则表达式如何作这个呀?
这所谓的特殊模式很难用正则表达式搜索出来。不过可以先用正则搜索出四个字的词语,然后再进行判断 xxyy模式:r[0]==r[1] and r[2]==r[3]sums = ['一', '二', '三', '四']数字模式:[True if i in sums else False for i in r] # 判断词语是否有数字 animal = ['猫', '狗...

Python其实很简单 第十一章 正则表达式
>>> re.match(r'bPy[a-z]+','Python') #加字符’r’,可以保证原生字符串 9、match()方法 Match()方法 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。语法格式:re.match(pattern, string, [flags])其中,pattern表示匹配的正则表达式;string是要...

python 正则表达式
匹配两种情况的Python正则表达式 top|123 我给你一个Python3语言的例子,你看看吧.import re s ="topofhill1234567toptower123"regex = "top|123"print (re.findall(regex,s))

请问python编程中怎么用正则表达式来编写一个程序,从而判断输入的数是...
1. 程序如下:import re number = str(input("Please input a number:"))pattern = re.compile(r'^[-+]?[0-9]+\\.[0-9]+$')match = pattern.match(number)if match:print "Number is a float."else:print "Number is not a float."2. 关于这个正则表达式,解释一下:^[-+]?[0-...

请问这个python正则表达式是什么意思?matches = re.findall('([^\\s...
这个是用来匹配不带空格和反斜杠的字符串。这里的^匹配非中括号里的字符;\\s代表空格;\\\\\\代表字符反斜杠(正则表达式需要双反斜杠来转义,因为\\在正则表达式中本身就具有含义)line = 'haha \\\\\\ \\\\ hehe'matches = re.findall('([^\\s\\\\\\]+)', line)print matches # ['haha', 'hehe']...

Python正则表达式中re.M 是什么意思
Python正则表达式中re.M的意思是:多行匹配,影响 ^ 和 $。正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:re.I:使匹配对大小写不敏感。re.L:做本地化识别(...

python 正则表达式
[A-Za-z]\\w+ :由开头的1个大写或者小写的字母加上至少1个 字符来匹配 比如 Aaa,Aa 4xZ匹配不到,xZ4可以匹配。

python正则表达式
re.compile("^abc")^表示字符串的开头,最后一个abc没出现在字符串的开头

python正则表达式中.*是什么意思
.表示任意字符,*表示重复0至多次,.*表示任意字符出现0到多次

python 正则表达式.*? 是什么意思 详细解释
分开来说:1、. 匹配任意除换行符“\\n”外的字符;2、*表示匹配前一个字符0次或无限次;3、+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复;4、 .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。如:a.*?b匹配最短的,以a开始...

建德市19537328622: python正则表达式 - 搜狗百科
缑贡降压: 表示任意字符,*表示重复0至多次,.*表示任意字符出现0到多次

建德市19537328622: python 正则表达式 -
缑贡降压: [A-Za-z]\w+ :由开头的1个大写或者小写的字母加上至少1个 字符来匹配 比如 Aaa,Aa4xZ匹配不到,xZ4可以匹配.

建德市19537328622: Python正则表达式的几种匹配用法 -
缑贡降压: 下面列出: 1.测试正则表达式是否匹配字符串的全部或部分regex=ur"" #正则表达式 if re.search(regex, subject): do_something()else: do_anotherthing() 2.测试正则表达式是否匹配整个字符串 regex=ur"/Z" #正则表达式末尾以/Z结束 if re.match...

建德市19537328622: 想请教python 正则表达式 -
缑贡降压: 这你就需要了解正则表达式的贪婪匹配和非贪婪匹配 在此例中#.*是贪婪匹配模式,所谓贪婪匹配就是在整个表达式匹配成功的前提下,尽可能多的匹配,#也就是所谓的“贪婪”,通俗点讲,就是看到想要的,有多少就捡多少,除非再也没有想...

建德市19537328622: Python正则表达式的几种匹配方法 -
缑贡降压: 1.测试正则表达式是否匹配字符串的全部或部分 regex=ur"" #正则表达式 if re.search(regex, subject): do_something() else: do_anotherthing()2.测试正则表达式是否匹配整个字符串regex=ur"/Z" #正则表达式末尾以/Z结束 if re.match(regex, ...

建德市19537328622: 请问python编程中怎么用正则表达式来编写一个程序,从而判断输入的数是否为浮点数.求高手指教. -
缑贡降压: 1. 程序如下: import re number = str(input("Please input a number:")) pattern = re.compile(r'^[-+]?[0-9]+\.[0-9]+$') match = pattern.match(number) if match:print "Number is a float." else:print "Number is not a float." 2. 关于这个正则表达...

建德市19537328622: python 正则表达式.*? 是什么意思? -
缑贡降压: 分开来说:1、. 匹配任意除换行符“\n”外的字符;2、*表示匹配前一个字符0次或无限次;3、+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复;4、 .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复.如:a.*?b匹配最短的,以a开始,以b结束的字符串.如果把它应用于aabab的话,它会匹配aab和ab.

建德市19537328622: python 正则表达式高手在否 -
缑贡降压: 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法...

建德市19537328622: 请问这个python正则表达式是什么意思?matches = re.findall('([^\s\\\]+)', line) -
缑贡降压: 这个是用来匹配不带空格和反斜杠的字符串. 这里的^匹配非中括号里的字符;\s代表空格;\\\代表字符反斜杠(正则表达式需要双反斜杠来转义,因为\在正则表达式中本身就具有含义) line = 'haha \\\\ \\ hehe' matches = re.findall('([^\s\\\]+)', line) print matches # ['haha', 'hehe']望采纳!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网