REGEX检查前25个字符内的短语

时间:2012-08-01 07:49:29

标签: python regex

我正在使用正则表达式来匹配关键字。是否可以仅在前25个字符内检查此关键字?

例如,我想查找"APPLE"

'Johnny picked an APPLE from the tree' - 找到匹配(在前25个字符中)

'Johnny picked something from a tree that had an APPLE' - 未找到(因为APPLE在前25个字符中不存在)。

有这个语法吗?

3 个答案:

答案 0 :(得分:7)

一个简单的解决方案是将slice从25个第一个字符中删除,然后进行正则表达式匹配。

myString = 'Johnny picked an APPLE from the tree'
slicedString = myString[:25]
# do regex matching on slicedString

答案 1 :(得分:2)

是的。您的关键字前缀为0到25 - 长度(关键字)"任何"字符。

我不确定这是否是实际的python语法,但RE应为^.{0,20}APPLE

编辑:澄清

    在查找子字符串时应使用
  • ^.{0,20}APPLE。在Python中使用它。
  • 匹配整个字符串时应使用
  • .{0,20}APPLE.*

另一个编辑:显然Python只有子串模式,所以^锚是必要的。

答案 2 :(得分:1)

尝试在字符串上使用slice

>>> 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