日文邮政编码的结构类似于123-5678,我创建了一个模式“/ \ d {3} [ - ] \ d {4} \ b / g”我有一个段落像那样
Sample text for testing:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 12555553-3456 000-1245 145-333333
0123456789 +-.,!@#$%^&*();\/|<>"'
12345 -98.7 3.141 .6180 9,000 +42
555.123.4567 +1-(800)-555-2468
foo@demo.net bar.ba@test.co.uk
www.demo.com http://foo.co.uk/
http://regexr.com/foo.html?q=bar
我在http://www.regexr.com/测试模式,我得到结果553-3456,000-1245和555-2468但我想找到任何字符串不包含1,2,...字母(s )前后连续:“3个数字字母和减号字符和4个数字字母”。我的意思是字符串“+ 1-(800)-555-2468”不是我想要的结果。可能是322-5588但不是xxx322-5588xxx。 xxx是一个或多个数字字符或字母字符。请查看http://www.regexr.com/和我的模式“ / \ d {3} [ - ] \ d {4} \ b / g ”以了解我的需求。
请帮助我,抱歉我的英语不好。
答案 0 :(得分:0)
如果我理解正确,在示例中,您给出的唯一结果是“000-1245”。
如果是这种情况,请尝试以下正则表达式:import time
with open('date.txt') as f:
mylist = f.read().splitlines()
for date_time in mylist:
if "/" in date_time:
pattern = '%m/%d/%Y'
print "1", pattern
else:
print "2"
pattern = '%m-%d-%y'
epoch = int(time.mktime(time.strptime(date_time, pattern)))
print epoch
。
答案 1 :(得分:0)
只需在表达式之前添加\ b:
^((?:[^,]+,){8})(.+)((?:,[^,]*){2})$ and replace with $1"$2"$3