我正在尝试打印并最终使用python将信息和数据写入文件。我在一个文件中读到一个名为List[]
的数组,然后用正则表达式搜索每一行。我想为文件中的每一行执行此操作,但是当我这样做时
counter=0
while counter <= OrderNum:
Info=re.match('^.{0,12}',List[counter])
Data=re.search('=....................',List[counter])
print counter
print 'is less than'
print OrderNum
print Info.group(counter)
print Data.group(counter)
counter+=1
第一次迭代[0]但一旦
,一切都很好Output
1
is less than
4
我收到以下错误
Traceback (most recent call last):
File "C:\Users\*******\workspace\Jython\regularexpressions.py", line 35, in <module>
print Info.group(counter)
IndexError: no such group
答案 0 :(得分:2)
match.group(n)
返回正则表达式组n
(如果n = 0,则返回整个匹配项)。正则表达式中的一个组是parentesis中的一个组件,因为你的表达式中没有任何组,所以你得到了异常。向我们展示您想要匹配的数据,我们将帮助您更好地表达。
答案 1 :(得分:1)
re.match
和re.search
返回Match
个对象。如果您未将参数传递给.group
方法,则可获得完整匹配。
如果您尝试从其他列表创建一些列表,则应该执行以下操作。
info_list = []
data_list = []
for counter, item in enumerate(the_list):
info=re.match('^.{0,12}', item)
data=re.search('=....................', item)
info_list.append(info.group())
data_list.append(data.group())
我已将部分变量名称更改为更符合PEP8。为其他Python开发人员提供易于阅读的代码是一个好主意。