0

キーワードに一致する正規表現を使用しています。最初の25文字以内でこのキーワードをチェックすることは可能ですか?

たとえば、私は見つけたいです"APPLE"

'Johnny picked an APPLE from the tree'-一致が見つかりました(最初の25文字以内)

'Johnny picked something from a tree that had an APPLE'-見つかりません(APPLEが最初の25文字以内に存在しないため)。

このための構文はありますか?

4

3 に答える 3

7

簡単な解決策は、最初の 25 文字を切り取って正規表現マッチングを行うことです

myString = 'Johnny picked an APPLE from the tree'
slicedString = myString[:25]
# do regex matching on slicedString
于 2012-08-01T07:53:59.430 に答える
2

はい、そうです。キーワードの前に 0 ~ 25 の長さ (キーワード) の「任意の」文字を付けます。

これが実際の python 構文かどうかはわかりませんが、RE は^.{0,20}APPLE.

編集:明確にするために

  • ^.{0,20}APPLE部分文字列を探すときに使用する必要があります。これを Python で使用します。
  • .{0,20}APPLE.*文字列全体を照合する場合に使用する必要があります。

別の編集:どうやらPythonには部分文字列モードしかないため、^アンカーが必要です。

于 2012-08-01T07:53:11.600 に答える
1

文字列にスライスを使用してみてください。

>>> 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
于 2012-08-01T07:58:10.297 に答える