【发布时间】:2012-11-21 13:19:51
【问题描述】:
我已经完成了大部分的正则表达式,但是我在前瞻方面遇到了麻烦。我想将一个字符串分隔成一个邮政编码,后跟两个字符串或两个数字。数字可以是以下形式:
1
1.5
1.55
11.55
中间位的文字可以是“No minimum”,第三位的文字只能是“Free”。
例如
"YO1£10Free" ==> YO1; 10个;免费
或
"yo1£8£0.5" ==> yo1; 8个; 0.5
或
"yo1 没有最低 0.75 英镑" ==> yo1;没有最低要求; 0.75
我已经完成了第一步:
string = "YO1£ 10Free"
patternPostCode = re.compile("[a-zA-Z]{1,2}[0-9][a-zA-Z0-9]?")
postCode = re.findall(string,patternPostCode)
字符串中的数字是通过以下方式找到的:
patternCost = re.compile(r"(?<=\xa3 )([0-9]|
[0-9][0-9]|
[0-9]?[0-9]?.[0-9]|
[0-9]?[0-9]?.[0-9][0-9])")
我很难将“或文本等于“无最小值””添加到 patternCost 搜索。我也无法设法包括前瞻。最后添加这个不起作用:
(?<=\xc2)
任何帮助将不胜感激。
【问题讨论】: