У меня проблема с кодом. Я написал функцию для извлечения параметра, отправив исходную строку и фрагменты текста pre / post, а также количество вхождений в тексте. Когда я писал это в простом коде, он прекрасно работал:
searchstr = 'qwer1234asdfqwer5678asdfqwer1234asdfqwer5678asdf'
startstr = 'qwer'
endstr = 'asdf'
occurancenr = 4
start = searchstr.find(startstr)
print 'start = ' + str(start)
while start >= 0 and occurancenr > 1:
start = searchstr.find(startstr, start + len(startstr))
occurancenr -= 1
print 'start = ' + str(start) + ', and nr = ' + str(occurancenr)
start = start + len(startstr)
end = searchstr.index( endstr, start )
print 'result = ' + searchstr[start:end]
Но когда я помещаю его в метод, который возвращает строку, я получаю ошибку:
Вот функция:
def findparam (self, searchstr, startstr, endstr, occurancenr):
start = searchstr.find(startstr)
while start >= 0 and occurancenr > 1:
start = searchstr.find(startstr, start + len(startstr))
occurancenr -= 1
start = start + len(startstr)
end = searchstr.index( endstr, start )
return 'result = ' + searchstr[start:end]
и вот вызов для этого:
abc = 'qwer1234asdfqwer5678asdf'
aa = 'qwer'
bb = 'asdf'
print self.findparam(abc, aa, bb, 1)
Ошибка выглядит так:
SyntaxError: ('invalid syntax', ('C:\\grinder-3.4\\scripts\\ResultCheckMerged.py', 367, 3, ' start = searchstr.find(startstr)'))
(no code object) at line 0
Технически, это функция для запуска скриптов, и компаратор использует jython, но, поскольку не используется код Java, а просто код Python, я считаю это проблемой с питоном. Но все же, может быть, это как-то связано с этим.
Любые советы по этому вопросу приветствуются!