re.sub() 文档误解
re.sub() documentation misunderstanding
我刚刚开始学习正则表达式和 re.sub()
的文档状态:
Changed in version 3.5: Unmatched groups are replaced with an empty
string.
Deprecated since version 3.5, will be removed in version 3.6: Unknown
escapes consist of '\' and ASCII letter now raise a deprecation
warning and will be forbidden in Python 3.6.
是否弃用了 re.sub()?那我该用什么?
这两个条目不相关,re.sub
不会 被弃用。
在 Python 3.5 之前的版本中 re.sub
如果反向引用用于未参与匹配的捕获组,则失败。请参阅 SO 问题。
发生故障的 example:
import re
old = 'regexregex'
new = re.sub(r'regex(group)?regex', r'somethingsomething', old)
print(new) # => fail as there is no "group" in between "regex" and "regex" in "regexregex"
# and Group 1 was not initialized with an empty string, i.e. remains null
至于第二个,它只说如果你使用 unknown 正则表达式引擎 文字反斜杠后跟 ASCII,将会出现警告(后来被禁止)特点。之前在 Python 2.x 到 3.5、print(re.sub(r'\j', '', 'joy'))
prints oy
中,反斜杠在它们中被忽略了。因此,这些将在 Python 3.6.
中被禁止
你误解了文档。 re.sub()
函数未弃用。弃用警告涉及 特定语法 。
在 re.sub()
documentation 之前你会发现这个:
Unknown escapes such as \&
are left alone.
如果您使用 unknown 使用 ASCII 字母转义 转义将不再被忽略,您将收到警告.这适用于 re.sub()
替换模式 和 正则表达式模式。关于正则表达式模式语法的部分也有同样的警告。
Changed in version 3.5 行还涉及 re.sub()
的工作原理。当 \number
反向引用没有匹配组时,不会引发异常,而是在该位置插入一个空字符串。
我刚刚开始学习正则表达式和 re.sub()
的文档状态:
Changed in version 3.5: Unmatched groups are replaced with an empty string.
Deprecated since version 3.5, will be removed in version 3.6: Unknown escapes consist of '\' and ASCII letter now raise a deprecation warning and will be forbidden in Python 3.6.
是否弃用了 re.sub()?那我该用什么?
这两个条目不相关,re.sub
不会 被弃用。
在 Python 3.5 之前的版本中 re.sub
如果反向引用用于未参与匹配的捕获组,则失败。请参阅
发生故障的 example:
import re
old = 'regexregex'
new = re.sub(r'regex(group)?regex', r'somethingsomething', old)
print(new) # => fail as there is no "group" in between "regex" and "regex" in "regexregex"
# and Group 1 was not initialized with an empty string, i.e. remains null
至于第二个,它只说如果你使用 unknown 正则表达式引擎 文字反斜杠后跟 ASCII,将会出现警告(后来被禁止)特点。之前在 Python 2.x 到 3.5、print(re.sub(r'\j', '', 'joy'))
prints oy
中,反斜杠在它们中被忽略了。因此,这些将在 Python 3.6.
你误解了文档。 re.sub()
函数未弃用。弃用警告涉及 特定语法 。
在 re.sub()
documentation 之前你会发现这个:
Unknown escapes such as
\&
are left alone.
如果您使用 unknown 使用 ASCII 字母转义 转义将不再被忽略,您将收到警告.这适用于 re.sub()
替换模式 和 正则表达式模式。关于正则表达式模式语法的部分也有同样的警告。
Changed in version 3.5 行还涉及 re.sub()
的工作原理。当 \number
反向引用没有匹配组时,不会引发异常,而是在该位置插入一个空字符串。