我試圖解決一個正則表達式的困惑,我很困惑。我想到了以下幾點:Python重新返回不匹配的行
import re
import fileinput
TEST_DATA = [
"6",
"2 ",
"1 877 2638277 ",
"91-011-23413627"
]
for line in TEST_DATA:
print(
re.sub(
r'(\d{1,3})[- ](\d{2,3})[- ]+(\d{5,10})',
r'CountryCode=\1,LocalAreaCode=\2,Number=\3',
line))
給我這個:
CountryCode=1,LocalAreaCode=877,Number=2638277
CountryCode=91,LocalAreaCode=011,Number=23413627
,而不是我得到這個:
6
2
CountryCode=1,LocalAreaCode=877,Number=2638277
CountryCode=91,LocalAreaCode=011,Number=23413627
我不明白爲什麼不匹配的線正在打印。
我想的文檔細讀會告訴我,它只是返回字符串,如果它不匹配,但是這似乎是一個無緣無故的恨它。 – Amanda
@Amanda我不需要太多的理由,介意你!我也避免了像鼠疫這樣的正則表達式。 –