python - 正则表达式不将匹配识别为 True

标签 python regex

我有一个包含文本数据的数据框,我正在尝试清除具有空内容值的行。我有一行的内容列如下所示:

articles.loc[197040, 'content']
'     '

我尝试使用 .isnull() 清理它,但它无法识别空字符串。所以我求助于正则表达式并尝试:

nothing = re.compile(r'\W{1,}')
articles = articles[articles['content'] != nothing]

但这会留下空文章。如果我尝试:

'     ' == nothing

我得到False。但是regex tester似乎表明这应该有效。使用 r'\W*' 也会返回 False

当尝试其他正则表达式组合时,其他无意义的字符串(例如逗号和空格的混合)仍然存在问题。

感谢您的帮助。

编辑:

这里也没有识别等效性:

'what.' == re.compile(r'\w*\.')
False

或者在这里:

'6:45' == r'[^A-Z]{1,}'
False

等等等等。

最佳答案

您可以使用 isspace 解决该问题内置,如果字符串中只有空白字符且至少有一个字符,则返回 true。

<小时/>

演示,还过滤空字符串:

import pandas as pd
articles =  pd.DataFrame({'content' : ['foo','bar','   ','foo','    ','']})    
articles = articles[(~articles['content'].str.isspace()) & (articles['content'] != '')]

>>> articles
  content
0     foo
1     bar
3     foo

关于python - 正则表达式不将匹配识别为 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45002793/

相关文章:

python - python 中的匹配字符串模式

正则表达式最大数量 11 且必须为 2 位数字

python - Python(和编程)新手看不出我哪里出错了

python - pytest - 辅助函数或 fixture 、参数化

php - 正则表达式加与星号的区别?

ruby - 正则表达式单独替换每个数字而不是整个数字

regex - Python 和正则表达式 : Match all, 但当 x 或 y 时则不然

python - 如何在原子编辑器中隐藏 *pyc 文件

python - 非均匀分布随机数组

c# - 在 IronPython 和 IronRuby 中打包脚本源文件