【发布时间】:2020-05-07 05:01:21
【问题描述】:
df
Name
0 @#
1 R@#
2 ghj@#
3 Ray
4 *@+
5 Jack
6 Sara123#
7 ( 1234. )
8 Benjamin k 123
9 _
10 _!@#_
11 _#_&@+-
12 56#@!
输出:
Bad_Name
0 @#
1 *@+
2 _
3 _!@#_
4 _#_&@+-
我需要通过正则表达式检测特殊字符。如果字符串包含任何字母或数字,则该字符串是有效的,否则它将被视为错误字符串。 我正在使用 '^\W*$' RE,一切正常,除非字符串包含 '_'(下划线)它不被视为错误字符串。
【问题讨论】:
-
只需使用
[A-Za-z0-9]而不是\w即可排除_和- -
我这样做是为了用 Null 替换值。 df.replace({"[A-Za-z0-9]":np.nan}, regex= True) 但它不起作用
-
而不是
^\W*$使用^[\W_]+$表示非单词字符或下划线
标签: regex python-3.x pandas python-2.7