Regex 在python正则表达式中查找括号

Regex 在python正则表达式中查找括号,regex,python-3.x,Regex,Python 3.x,我的文本字符串如下所示: yryr%(DENHP@Germany) 我希望我的输出如下所示: yryr\uuu DENHP\u德国 (我还想替换句号和逗号) 这些实际上是熊猫数据帧中的变量,我正在尝试匹配括号。。。这是我正在尝试的,但它不太管用。有人能帮忙吗 df\u q\u raw.columns=df\u q\u raw.columns.str.replace(['\.\%r'\('r'\)'),'')str.replace不适用于正则表达式。您应该改用re.sub 根据您的示例判断,您希望

我的文本字符串如下所示:

yryr%(DENHP@Germany)

我希望我的输出如下所示:

yryr\uuu DENHP\u德国

(我还想替换句号和逗号)

这些实际上是熊猫数据帧中的变量,我正在尝试匹配括号。。。这是我正在尝试的,但它不太管用。有人能帮忙吗


df\u q\u raw.columns=df\u q\u raw.columns.str.replace(['\.\%r'\('r'\)'),'')
str.replace
不适用于正则表达式。您应该改用
re.sub

根据您的示例判断,您希望将
%
@
替换为
\uuuuu

re.sub(r"[().%@]", '', df_q_raw.columns.str)
[]
表示字符类。如果某个字符是字符类的成员,则该字符将被匹配


如果要替换所有非字母数字字符,请改用此正则表达式:
\W

要仅删除括号、百分号、句点和逗号,可以使用

df.columns = df.columns.str.replace(r'[()%.,]', '_')
要替换任何非单词字符,可以使用

df.columns = df.columns.str.replace(r'\W', '_')
\W
模式匹配任何非单词字符。如果不想匹配空白,请使用
[^\w\s]


如果您还想替换
(也被认为是单词字符),则需要使用
[\W\u]
,或者,如果您不想匹配空白,请使用
(?!\s)[\W\u]

是否只是将所有非字母数字字符替换为
?如果是这样,只需使用
\W
替换为
\u
我只想在数据框列名中替换它们,而不是其他地方。谢谢,这很有效。专门使用您的
\W
方法替换所有非字母数字值。@Aaraeus很高兴它对您有效。请考虑我的回答是否对你有帮助。