我有一个类似于
的文本文件alpha alphabet alphameric
我想只匹配第一个字符串'alpha',没有别的
我有以下代码尝试仅匹配alpha
字符串并获取其行号
findWord = re.findall('\\ba\\b', "alpha")
with open(file) as myFile:
for num, line in enumerate(myFile, 1):
if findWord in line:
print 'Found at line: ', num
但是我收到以下错误:
TypeError:' in'需要字符串作为左操作数,而不是列表
答案 0 :(得分:1)
您可以稍微修改一下代码
with open(file, 'r') as myFile:
for num, line in enumerate(myFile, 1):
if 'alpha' in line.split():
print 'Found at line', num
输出:
在第1行找到
答案 1 :(得分:1)
代码中的问题
re.findall('\\ba\\b', "alpha")
提供了匹配的列表,但您在if findWord in line
中使用的意思是使用list代替字符串。这就是你得到的错误findWord = re.findall('\\ba\\b', "alpha")
,您正在搜索不存在的字母字符串中的字符串a
试试这个
import re
#findWord = re.findall('\\ba\\b', "alpha")
#print findWord
with open("data.txt") as myFile:
for num,line in enumerate(myFile):
if re.findall('\\balpha\\b', line):
print 'Found at line: ', num+1
答案 2 :(得分:0)
你可以试试这个:
import re
s = "alpha alphabet alphameric"
data = re.findall("alpha(?=\s)", s)[0]
输出:
"alpha"