キーワードに一致する正規表現を使用しています。最初の25文字以内でこのキーワードをチェックすることは可能ですか?
たとえば、私は見つけたいです"APPLE":
'Johnny picked an APPLE from the tree'-一致が見つかりました(最初の25文字以内)
'Johnny picked something from a tree that had an APPLE'-見つかりません(APPLEが最初の25文字以内に存在しないため)。
このための構文はありますか?
簡単な解決策は、最初の 25 文字を切り取って正規表現マッチングを行うことです。
myString = 'Johnny picked an APPLE from the tree'
slicedString = myString[:25]
# do regex matching on slicedString
はい、そうです。キーワードの前に 0 ~ 25 の長さ (キーワード) の「任意の」文字を付けます。
これが実際の python 構文かどうかはわかりませんが、RE は^.{0,20}APPLE.
編集:明確にするために
^.{0,20}APPLE部分文字列を探すときに使用する必要があります。これを Python で使用します。.{0,20}APPLE.*文字列全体を照合する場合に使用する必要があります。別の編集:どうやらPythonには部分文字列モードしかないため、^アンカーが必要です。
文字列にスライスを使用してみてください。
>>> import re
>>> string1 = "Johnny picked an APPLE from the tree"
>>> string2 = "Johnny picked something from a tree that had an APPLE"
>>> re.match(".*APPLE.*", string1[:25]) # Match
<_sre.SRE_Match object at 0x2364030>
>>> re.match(".*APPLE.*", string2[:25]) # Does not match