python正则表达式提取字符
‘壹’ 在python中,利用正则表达式在html中,提取每三行中的特定字符,形成一个列表,每个列表中的元
import re
file_object = open('temp.txt')
try:
str = file_object.read( )
finally:
file_object.close( )
result = re.findall("(\d+%) S\s+\d+ (\d+)K\s+(\d+)K",str)
f = open("test.csv","w")
for line in result:
f.write("%s,%s,%s\n"%(line[0],line[1],line[2]))
f.close()
‘贰’ python语言 正则表达式 取{}之间的字符,不包括大括号
在
python
中,
str.replace
函数接受的第一个参数并不是正则表达式,而是字符串。
所以你会看到,运行
print '123(abc)123'.replace('(abc)', '!')的结果是
'123!123'
想要达到你所说的效果,可以试一试
python
中的
re
模块
例如:
import re
replace_reg = re.compile(r'abc$')
print replace_reg.sub('x', '123abc') 的运行结果为:
'123x'
‘叁’ python 正则表达式re.sub()提取字符串以及去除空格
Python 的re模燃搏塌块提供了re.sub用于替换字符串中的匹配项。
语法:
re.sub(pattern, repl, string, count=0)
参数:
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配皮圆。
实例:
注:re.sub(r'[a-zA-Z",:{}]', "", data),银念中括号表示选择其中的任意元素,a-zA-Z表示任意字母。
‘肆’ python 正则表达式中提取字符串
import re
pattern = re.compile(r'\@[^ ]+',re.I)
result = pattern.findall('abcde / @kkshj_j123shaa / HAN HAN / 来源')
print(result)
‘伍’ python 字符串提取信息方法总结
在日常项目中,我们经常会使用python从字符串中提取我们想要的信息,以下是各种提取信息方法的总结。
格式: str[beg:end:step]
描述: 字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时步长为1
举例:
print(str[::2]) //::这里表示整个字符串,每两个位置提取一个
print(str[1:3]) //提取第2个到第3个
print(str[2::]) //截取2 - 末尾的字符
本小节介绍了,处理字符串经常用到的一些函数方法。
语法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
语法: str.split(str="", num=string.count(str)).
描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串.返回分割后的字符串行表,该方法可以讲字符串转化为列表处理。
另外的: str.splitlines([keepends])按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
语法: str.partition(str)
描述: partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
语法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法: str.strip([chars]);
描述: Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法: str.join(sequence)
描述: Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
上述方法还有其变形,如str.rfind(),这代表从字符串右边开始处理,正常是从左边开始处理。下表是其它常用的python字符串自带函数方法。
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本小节主要介绍Python中常用的正则表达式处理函数和正则表达式的书写规则。
re 模块使 Python 语言拥有全部的正则表达式功能。所以在python中使用正则表达式处理函数需要import re
语法: re.search(pattern, string, flags=0)
描述: re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。
语法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
语法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
模式字符串使用特殊的语法来表示一个正则表达式:
‘陆’ python正则表达式提取字符串中的数字 字符串如下
>>>importre
>>>str1='balance-rr0'
>>>mode=re.compile(r'd+')
>>>
>>>mode.findall(str1)
['0']
>>>str1='12j33jk12ksdjfkj23jk4h1k23h'
>>>mode.findall(str1)
['12','33','12','23','4','1','23']
>>>