(编辑:jimmy 日期: 2024/11/15 浏览:2)
问题描述:
用正则表达式提取文本中的版本号信息,比如说:10.1.1 9.5 10.10.11
并实现在文本中(.txt)读入,写出到文本(.txt)
首先构造正则表达式:
pattern=Vpat=“I.(I.)*I”
构造正则表达式: (1)re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。 (2)findall是把所有匹配到的结果都拿出来 (3)后面的group()括号里还能加数字,可以用来导出特定行 (4)\d是整数的意思 +是1-无穷(就是1个以上) (5) *是0到无穷####(I.)*是0个以上的整数加点 (6)‘("htmlcode">
结果:[‘ab'] 这是因为如果只使用一对括号,那么这就成为了一个组(group)。组的使用比较复杂。 调试过程: banners.txt 识别结果: test1.txt 1.1.1 总结r'\d+\.("htmlcode">
import re
pattern = r'\d+\.("F:\\xxxxxx\\banners.txt","r")
data=f.read()
f.close
result=re.findall(pattern,data)
f1=open("F:\\xxxxxx\\test1.txt","w")
for i in result:
f1.write(i+'\n')
f.close
> s='ababab abbabb aabaab'
> re.findall( r'\b("htmlcode">
> re.findall( r'b\(ab)+\b' , s )
import re
#pattern = r'.*"F:\\shovat\\banners.txt","r")
data=f.read()
##data=f.readline()
f.close
#for line in data:
result=re.findall(pattern,data)
##print(result)
# print(result)
# print(result.group())
#t=(result.group())
#t=(result.group(1))
f1=open("F:\\shovat\\test1.txt","w")
for i in result:
f1.write(i+'\n')
f.close
ddd 1.1.1cisco ios software,c3750 software (c3750-ipbase-m),version
ddd 2.2.2 12.2(53)se,release softeware(fc2) 10.1.1
ddd 3.3.3 technical support:http://www.cisco.com/techsupport
ddd 4.4.4 copyright (c) 1986-2009 by cisco systems,inc.
ddd 5.5.5 comiled sun 13-dec-09 16:25 by prod_rel_team
9.5
2.2.2
12.2
10.1.1
3.3.3
4.4.4
5.5.5
9.5