python脚本中的正则表达式

时间:2015-08-13 10:02:56

标签: python regex

我是python的新手。我需要使用正则表达式在列表中找到包含这些元音的单词。以下不起作用。任何人都可以看到需要纠正的问题吗?谢谢。

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="defaultLocale" value="en"></property>
    <property name="cookieName" value="YOUR_LOCALE_COOKIE_NAME"/>
</bean>

我收到此错误:

import re
file = open('wordlist.txt', 'r')
print re.findall('[aie]', file)

以下是wordlist中的内容,我可以使用它来检索:

Traceback (most recent call last):
    File "C:\Python27\MyScripts\script2.py", line 3, in ` <module>
        print re.findall('[aie]', file)
    File "C:\Python27\lib\re.py", line 181, in findall
        return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer

打印出来:

file = open('wordlist.txt', 'r')
print file.read()`

2 个答案:

答案 0 :(得分:2)

re.findall()不接受文件对象,因为错误说您需要传递字符串或缓冲区,以便您可以使用file.read()将文件作为字符串对象传递给{{ 1}}功能:

findall()

或者,如果您要处理大量文件以拒绝一次阅读文件,或者作为一种更加pythonic的方式,您可以根据需要使用print re.findall('[aie]', file.read()) re.search循环访问您的文件线。

re.fildall

答案 1 :(得分:1)

这应该这样做:

import re
file = open('wordlist.txt', 'r')
print re.findall('[aie]', file.read())

错误是由于您在文件对象上尝试实现而不是内容