コードに問題があります。元の文字列、前後のテキストフラグメント、およびテキスト内の出現回数を送信して、パラメータを抽出する関数を作成しました。私がそれを単純なコードで書いたとき、それはうまくいきました:
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コードのみであるため、これはPythonの問題と見なします。しかし、それでも、おそらくそれはこれと関係があります。
これに関するヒントはありがたいです!