当前位置:首页 » 编程语言 » python正则表达式实例

python正则表达式实例

发布时间: 2024-10-21 14:31:35

python入门问题,关于正则表达式。求高手通俗解答。

pattern=r'([1-9]{1,3}(.[0-9]{1,3}){3})'

[1-9]{1,3}表示匹配由1-9之间任意数组成的1位、2位或3位数,如1,12,123

.[0-9]{1,3}表示匹配1个点接由0-9之间任意数组成的1位、2位或御散3位数,如.1,.12,.123

(.[0-9]{1,3}){3}表示.[0-9]{1,3}的匹配条件重复3次,如.1.2.3,.1.12.123,168.1.1

([1-9]{1,3}(.[0-9]{1,3}){3})表示匹配1-9之间任意数组成的1位、2位或3位数+1个点接由0-9之间任意数组成的1位、2位陵拆乱或3位数 * 3次,所以可以尺档匹配127.0.0.1,192.168.1.66

()仅仅表示括号内的匹配项作为一组匹配,不会影响匹配的条件,

Ⅱ python 正则表达式 \bs*.\Se\b与\bs\S*e\b的含义解释

实测:

>>>res=re.compile(r's*.Se')
>>>resl=re.findall(res,txt)
>>>resl
['site','sue','see','sse','ssee']
>>>res=re.compile(r'sS*?e')
>>>resl=re.findall(res,txt)
>>>resl
['site','sue','see','sse','ssee','somewhere']


第一个正则:

——单词分界,

s*——0个或多个s

.——任一字符

S——任一非空字符

e——字母e

——单词分界


第一个正则是错误的,它还可以匹配 "are"、"ss[一个空格]re",等不符合要求的内容。


后者是可以匹配到的。

Ⅲ python 正则表达式,怎样匹配以某个字符串开头,以某个字符串结尾的情况

python正则匹配以xx开头以xx结尾的单词的步骤:

1、假设需要匹配的字符串为:site sea sue sweet see case sse ssee loses需要匹配的为以s开头以e结尾的单词。正确的正则式为:sS*?e

2、使用python中re.findall函数表示匹配字符串中所有的可能选项,re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。

3、代码和结果如下:

text ='site sea sue sweet see case sse ssee loses'

re.findall(r'sS*?e',text)

结果为:['site', 'sue', 'see', 'sse', 'ssee']

(3)python正则表达式实例扩展阅读:

python正则匹配,以某某开头某某结尾的最长子串匹配

代码如下:

regVersions = re.search(r'(V|v)[0-9].*[0-9]', filename)

if regVersions:

print regVersions.group()


Ⅳ Python用正则表达式匹配含有中文的字符串,匹配不到

代码如下:

#coding=utf-8

importre
s=u'<li><aclass="nav-first"href="/">首页</a></li>'
r=re.compile(u'<li><asclass="[^"]*"shref="[^"]">(.*?)(?=</a></li>)')
ss=r.findall(s)
forstrinss:
printstr

运行结果:

Ⅳ 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只保留汉字数字和字母的正则表达式

import re

pattern = r'[^\u4e00-\u9fa5a-zA-Z0-9]+'

def keep_chinese_and_alphanumeric(text):
return re.sub(pattern, '', text)

# 示例
text = '这是一段包含汉字、数字和字母的字符串。\n1234abc'
result = keep_chinese_and_alphanumeric(text)
print(result) # 输出:这是一段包含汉字、数字和字母的字符串。1234abc
该正则表达式 [^\u4e00-\u9fa5a-zA-Z0-9]+ 匹配的扮卜是枯握不包含中文、字母和数字的任意字符。使用 re.sub() 方法将匹配到的字符替换为空字符串,即可只保留汉字、数字和字没缺庆母。

热点内容
破解加密的word文件 发布:2024-11-24 04:29:20 浏览:51
中国编译器高手 发布:2024-11-24 04:29:20 浏览:114
帝国php 发布:2024-11-24 04:25:04 浏览:502
linuxdnf 发布:2024-11-24 04:20:00 浏览:873
安卓8的手机怎么升级 发布:2024-11-24 04:19:58 浏览:219
redhat连接ftp 发布:2024-11-24 04:19:51 浏览:930
安卓手机如何快速调出健康码 发布:2024-11-24 04:10:50 浏览:66
sql回车 发布:2024-11-24 03:57:09 浏览:426
传奇怎么改脚本 发布:2024-11-24 03:57:02 浏览:697
ftp上传速度慢 发布:2024-11-24 03:56:07 浏览:217