我正在尝试设置此字符串的格式,但不包括以下字符:( )
My_name (1)
Your_name (2)
所需的输出:
My_name_ID_1
Your_name_ID_2
这是我数据框的一列。我尝试一次替换,但一次只能替换一个字符,并且我也希望以后加入。
我可以同时加入并替换这两个角色吗?
答案 0 :(得分:2)
您可以将正则表达式与str.replace
一起使用:
s.str.replace(r'(\w+)\s+\(([^\)])\)', r'\1_ID_\2')
0 My_name_ID_1
1 Your_name_ID_2
Name: 0, dtype: object
替代方法是:
s.str.replace(r'\s+\(([^\)])\)', r'_ID_\1')
如果您想不太明确。
正则表达式说明
( # matching group 1
\w+ # matches any word character
)
\s+ # matches one or more spaces
\( # matches the character (
( # matching group 2
[^\)] # matches any character that IS NOT )
)
\) # matches the character )
答案 1 :(得分:2)
您还可以使用:
key
但是,@ user3483203的答案更好。 :)