Python 用 1985 替换提及年份,例如 '85
Python replace year mentions like '85 with 1985
我正在使用此正则表达式将字符串中所有出现的 '85 形式年份替换为 1985
import re
re.sub("'(\d\d)", "19", "Today '45")
但我得到的结果与预期相去甚远:
'Today 19\x01'
我希望得到 Today 1945
。我想知道什么是正确的方法。非常感谢任何帮助。
将字符串设为原始字符串
>>> re.sub(r"'(\d\d)", r"19", "Today '45")
'Today 1945'
或者如 所建议的那样,使用单词边界 \b
。它们更好,因为它们可以帮助您忽略不是两位数的数字,例如 3456
>>> re.sub(r"'(\d{2})\b", r"19", "Today '45, '3456")
"Today 1945, '3456"
用 \g<1>
代替 </code> 引用组:</p>
<pre><code>In [21]: re.sub("'(\d\d)", "19\g<1>", "Today '45")
Out[21]: 'Today 1945'
或使用原始字符串:
In [22]: re.sub("'(\d\d)", r"19", "Today '45")
Out[22]: 'Today 1945'
您的代码无效,因为 Python interprets
as a character.
我正在使用此正则表达式将字符串中所有出现的 '85 形式年份替换为 1985
import re
re.sub("'(\d\d)", "19", "Today '45")
但我得到的结果与预期相去甚远:
'Today 19\x01'
我希望得到 Today 1945
。我想知道什么是正确的方法。非常感谢任何帮助。
将字符串设为原始字符串
>>> re.sub(r"'(\d\d)", r"19", "Today '45")
'Today 1945'
或者如 \b
。它们更好,因为它们可以帮助您忽略不是两位数的数字,例如 3456
>>> re.sub(r"'(\d{2})\b", r"19", "Today '45, '3456")
"Today 1945, '3456"
用 \g<1>
代替 </code> 引用组:</p>
<pre><code>In [21]: re.sub("'(\d\d)", "19\g<1>", "Today '45")
Out[21]: 'Today 1945'
或使用原始字符串:
In [22]: re.sub("'(\d\d)", r"19", "Today '45")
Out[22]: 'Today 1945'
您的代码无效,因为 Python interprets as a character.