9 7 316 Lake St Arran Dr St. Catharines, ON L2N 4H4 Phone: 905-934-5885 112.9 123 130 --- 1/1/18
10 Esso 142 Lakeshore Rd Geneva St St. Catharines, ON L2N 2T5 Phone: 905-646-4558 112.7 125.9 131.9 --- 1/1/18
11 Petro-Canada 533 Lake St Linwell Rd St. Catharines, ON L2N 4H6 Phone: (905) 937-7719 112.9 125.9 131.9 124.9 1/1/18
我有上述数据,需要将(905)更改为905-,以便所有数据都采用相似的格式。我试图将这些内容读取为列表并重新导入。
import re
for line in data :
line = re.sub(r"(905) ", "905-", line)
print(line)
但是它不起作用。如何更换它?
答案 0 :(得分:2)
如果您想要的只是简单的替换,那么您不应该使用re
:
line = line.replace("(905) ", "905-")
如果您需要替换除905之外的更多前缀,则仅需要正则表达式:
line = re.sub(r"\((\d{3})\) ", r"\1-", line)
这也将(204) 342-4532
替换为204-342-4532
。
答案 1 :(得分:0)
像这样在RE中放括号
re.sub(r"\(905\) ", "905-", line)
答案 2 :(得分:0)
您需要对括号进行转义,因为它们是特殊字符:
for line in data :
line = re.sub("\(905\) ", "905-", line)
print(line)
输出:
9 7 316 Lake St Arran Dr St. Catharines, ON L2N 4H4 Phone: 905-934-5885 112.9 123 130 --- 1/1/18
10 Esso 142 Lakeshore Rd Geneva St St. Catharines, ON L2N 2T5 Phone: 905-646-4558 112.7 125.9 131.9 --- 1/1/18
11 Petro-Canada 533 Lake St Linwell Rd St. Catharines, ON L2N 4H6 Phone: 905-937-7719 112.9 125.9 131.9 124.9 1/1/18