我很难知道我是否使用我的RegEx语法执行我真正想要它做的事情,并且不知道如何以特定于Python的方式校对它。
有人可以对此进行校对或帮我找到一个自我校对的地方,这是否适合显示Pandas DataFrame的行,其中“名称”列下的单元格值包含不在英文字母,数字中的字符,&各种常见的标点符号,或者我是否过度/反斜杠某些字符?
(我的猜测是我需要反斜杠反斜杠和方括号。)
(注意:我知道源数据在此列中永远不会有多行单元格值。)
filtereddf = df[~df['Name'].str.match(r'^[a-zA-Z\d_\s.&+-,!@#$%^*();\\/|<>"\'?=:\[\]]+$')]
此外,任何niftier技巧“各种标点字符”,同时确保通常被认为是“字母”的东西,只有英语26 a-z&amp;允许A-Z?
更新:
我得到了“Python Regex语法解释器”的建议,我需要在评论中进行自我校对 - 应该考虑将其作为替代方案,而不仅仅是要求校对帮助。对于这个措辞严厉的问题,我们很抱歉;更新。
答案 0 :(得分:1)
如果要搜索非ASCII字符,请尝试使用此RegEx:
[^\x00-\x7F]
在Pandas中:
df = df[df['Name'].str.contains('[^\x00-\x7F]')]