我正在尝试在 python 中创建一个正则表达式来检测 7 位数字并从 .vcf 文件更新联系人。然后它将数字修改为 8 位数字(只需在数字前添加 5)。事情是正则表达式不起作用。
我收到错误消息“扫描字符串文字时 EOL”
regex=re.compile(r'^(25|29|42[1-3]|42[8-9]|44|47[1-9]|49|7[0-9]|82|85|86|871|87[5-8]|9[0-8])/I s/^/5/')
#Open file for scanning
f = open("sample.vcf")
#scan each line in file
for line in f:
#find all results corresponding to regex and store in pattern
pattern=regex.findall(line)
#isolate results
for word in pattern:
print word
count = count+1 #display number of occurences
wordprefix = '5{}'.format(word)
s=open("sample.vcf").read()
s=s.replace(word,wordprefix)
f=open("sample.vcf",'w')
print wordprefix
f.write(s)
f.close()
我怀疑我的正则表达式的格式不正确,无法检测具有 2 位数字的特定数字模式,这些数字具有特定格式,例如 25x 和 29x 以及可以是任何数字模式的 5 位数字。(总共 7 位数字)
任何人都可以帮助我了解在这种情况下采用的正确格式吗?