質問

のpython / pyparsing

私はscanStringメソッドを使用する場合は、

、それはテキストで、マッチしたトークンの開始と終了位置を与えています。

例えばます。

line = "cat bat"
pat = Word(alphas)
for i in pat.scanString(line):
    print i

私は、次の取得ます:

((['cat'], {}), 0, 3)
((['bat'], {}), 4, 7)

しかし、猫の最後の場所は「2」、右すべきですか?それが最後の場所として次の場所を報告しているのはなぜ?

役に立ちましたか?

解決

このは「終わり」が次の文字のインデックスであるPythonの[begin:end]スライスの規則と一致しています。次の位置として終了を置くことによって、返された値を使用して、一致するサブストリングを抽出することは非常に簡単である:

for t,start,end in pat.scanString(line):
    print line[start:end]

あなたはtransformStringの実施のためのpyparsingソースコードで見れば、これが使用されているかを確認することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top