Regex 在python中用正则表达式检测特殊字符?

Regex 在python中用正则表达式检测特殊字符?,regex,python-3.x,pandas,python-2.7,Regex,Python 3.x,Pandas,Python 2.7,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#@! df[~df['Name'].str.contains('[a-z0-9]', False)] 我需要通过正则表达式检测特殊字符。如果一个字符串包含任何字母或数字,那么该字符串是有效的,否则它将被认为是坏字符串。 我

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#@!
df[~df['Name'].str.contains('[a-z0-9]', False)]
我需要通过正则表达式检测特殊字符。如果一个字符串包含任何字母或数字,那么该字符串是有效的,否则它将被认为是坏字符串。
我使用的是“^\W*$”RE,除了字符串包含“u”(下划线)时,其他一切都正常工作。它不会被视为坏字符串

使用熊猫.Series.str.contains:

 Bad_Name
0  @#
1  *@+
2  _
3  _!@#_
4  _#_&@+-
输出:

   Name
0  @#
1  R@#
2  ghj@#
3  Ray
4  *@+
5  Jack
6  Sara123#
7  ( 1234. )
8  Benjamin k 123
9  _
10 _!@#_
11 _#_&@+-
12 56#@!
df[~df['Name'].str.contains('[a-z0-9]', False)]

只需使用
[A-Za-z0-9]
而不是
\w
来排除
\u
-
我这样做是为了用Null替换值。df.replace({“[A-Za-z0-9]”:np.nan},regex=True)但它不起作用而不是使用
^\W*$
表示非单词字符或下划线的
^[\W\u]+$
,我这样做是为了用Null替换值。df.replace({“[A-Za-z0-9]”:np.nan},regex=True)但它不工作您不能使用
dict
regex
。尝试
df.replace(“[A-Za-z0-9]”,np.nan,regex=True)
只要模式匹配,它就会替换为null。我只需要将那些有纯特殊字符(不包含任何数字或字母)的值设为null。