Python重替换字复制

Python重替换字复制,python,regex,Python,Regex,我想用foo替换[任何数字]。但结果却很奇怪 它打印web抓取foo 为什么会这样 谢谢如果您想替换括号中的所有数字,可以使用这种方法 re.sub(r'[\[\d\]]', 'foo', 'web scraping [2]') 如果要替换括号中的所有数字,可以使用这种方法 re.sub(r'[\[\d\]]', 'foo', 'web scraping [2]') 你有一对额外的方括号。他们正在创建一个你不想要的角色类 下面是修复正则表达式的方法: >>> re.sub(

我想用
foo
替换
[任何数字]
。但结果却很奇怪

它打印
web抓取foo

为什么会这样


谢谢

如果您想替换括号中的所有数字,可以使用这种方法

re.sub(r'[\[\d\]]', 'foo', 'web scraping [2]')

如果要替换括号中的所有数字,可以使用这种方法

re.sub(r'[\[\d\]]', 'foo', 'web scraping [2]')

你有一对额外的方括号。他们正在创建一个你不想要的角色类

下面是修复正则表达式的方法:

>>> re.sub(r'\[\d+\]', 'foo', 'web scraping [2] [34] [567]')
'web scraping foo foo foo'

请注意,这只接受单个数字。如果要接受多位数,请将
\d
替换为
\d+

您还有一对方括号。他们正在创建一个你不想要的角色类

下面是修复正则表达式的方法:

>>> re.sub(r'\[\d+\]', 'foo', 'web scraping [2] [34] [567]')
'web scraping foo foo foo'

请注意,这只接受单个数字。如果要接受多位数,请将
\d
替换为
\d+

使用
re.sub(r'\[\d\]'、'foo'、'web scraping[2]')
您有不必要的外部
[…]
使其成为字符类,请改用
\[\d+\]
。您正在匹配列表中的任何字符
[\[\d\]]
,这意味着匹配
[
\d
]
,并将每个实例替换为
foo
@ctwheels这是什么意思?@RaheelKhan,如果您的数字大于9,例如
[10]
如果您对某些特殊字符的功能感到困惑,我建议您尝试一下您的模式。右上角有一个解释框。使用
re.sub(r'\[\d\]'、'foo'、'web scraping[2]')
您有不必要的外部
[…]
使其成为字符类使用
\[\d+\]
。您正在匹配列表中的任何字符
[\[\d\]]
,这意味着匹配
[
\d
]
,并将每个实例替换为
foo
@ctwheels这是什么意思?@RaheelKhan,如果您的数字大于9,例如
[10]
如果您对某些特殊字符的功能感到困惑,我建议您尝试一下您的模式。右上角有一个解释框。