正则表达式命令找不到指定的字符串

狼队

我正在尝试构建一个小型爬虫来抓取 Twitter 句柄。我终生无法避免犯下的错误。对于 re.search,这似乎是完全相同的错误。re.findall 和 re.finditer。错误是TypeError: expected string or buffer.

数据的结构如下来自 CSV:

30,"texg",@handle,,,,,,,,,

请注意,打印行工作正常,测试 = re.... 在到达打印行之前出错。

def read_urls(filename):
    f = open(filename, 'rb')
    reader = csv.reader(f)
    data = open('Data.txt', 'w')
    dict1 = {}
    for row in reader:
        print row   
        test = re.search(r'@(\w+)', row)
        print test.group(1)

我也不是一直在许多不同的线程上解决这个问题,但解释的所有解决方案都没有奏效。似乎重新无法读取行调用...

虚拟机

仔细看看你的代码:

for row in reader:
    print row   
    test = re.search(r'@(\w+)', row)
    print test.group(1)

请注意, row 是一个列表而不是字符串,并且根据搜索文档:

扫描字符串以查找正则表达式模式产生匹配的第一个位置,并返回相应的 MatchObject 实例。如果字符串中没有位置与模式匹配,则返回 None;请注意,这与在字符串中的某个点找到零长度匹配不同。

这意味着您应该创建一个字符串并检查是否test不是None

for row in reader:
    print row   
    test = re.search(r'@(\w+)', ''.join(row))
    if test:
        print test.group(1)

也可以打开没有b标志的文件,例如

f = open(filename, 'r')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式指定字符串的基于评估

Python正则表达式:re.search()找不到字符串

使用正则表达式获取指定字符串之间的所有文本

正则表达式拆分字符串,指定子字符串除外

R:正则表达式指定字符串的结尾char是字母

正则表达式:“ ux / ui”字符串的智能正则表达式

正则表达式匹配指定长度的字符串

使用正则表达式提取指定符号之间的所有子字符串

匹配正则表达式或找不到时留下空字符串

正则表达式检查列表中的所有单词是否都在字符串中(如果找不到,则返回字符串)

正则表达式检查指定字符串以外的数字

通过正则表达式从正则表达式添加字符串

正则表达式匹配不包含所有指定元素的字符串

正则表达式检查字符串是否包含指定字符以外的字符

如果找不到子字符串,则正则表达式匹配

如何在正则表达式中指定换行或字符串的结尾?

如何在python中指定正则表达式字符串

正则表达式:为字符串编辑正则表达式

Javascript正则表达式:如何指定字符串的选项结尾

为什么正则表达式找不到字符串?

正则表达式,应检查字符串是否包含指定的单词

在正则表达式中找不到子字符串

需要正则表达式来提取某些指定格式的子字符串

正则表达式删除指定字符串以外的所有内容

PHP正则表达式匹配指定字符前的字符串中的数字

找不到正确的正则表达式来解析字符串

为什么连字符-在find命令的正则表达式中找不到?

Bash 正则表达式被视为字符串而不是正则表达式

正则表达式找不到预期的字符串