【发布时间】:2017-05-15 16:11:34
【问题描述】:
我很难知道我的 RegEx 语法是否做了我真正想要做的事情,并且不知道如何以特定于 Python 的方式校对它。
有人可以校对这个或帮我找一个地方自我校对这是否适合显示 Pandas DataFrame 的行,其中“名称”列下的单元格的值包含不属于英文字母、数字的字符, & 各种常见的标点符号,还是我在某些字符上加了/下斜线?
(我的猜测是我需要反斜杠和方括号。)
(注意:我知道源数据在此列中永远不会有多行单元格值。)
filtereddf = df[~df['Name'].str.match(r'^[a-zA-Z\d_\s.&+-,!@#$%^*();\\/|<>"\'?=:\[\]]+$')]
此外,对于“各种标点符号”有什么更巧妙的技巧,同时确保通常被认为是“字母”的事物只允许使用英文 26 a-z 和 A-Z?
更新:
我收到了关于我在 cmets 中进行自我校对所需的“Python Regex 语法解释器”的推荐——应该考虑将其作为替代方案,而不仅仅是寻求校对帮助。对不起,起初措辞不好的问题;更新了。
【问题讨论】:
-
您是否考虑过对其进行测试?如果它只是您要检查的正则表达式,请使用例如regex101.com
-
@jonrsharpe,谢谢——右上角的解释正是我自己找不到的。我通过它了解到我实际上需要避开“+”和“-”等......这太棒了!我已经更新了这个问题,所以这将是它的答案——如果你想把它作为一个答案,我会接受它。
-
你应该删除问题,校对不是主题。