首页 > 解决方案 > 如何检查字符串是否在新行的开头?

问题描述

我正在尝试find()在 python 中使用该方法,但遇到了问题。该find()方法似乎不允许您只检查换行符上的文本。下面的代码:

def ParseText(self, text):
    endIndex = 0
    startIndex = text.find("\n/obj/item/clothing")

    while startIndex != -1:
        text = text[startIndex:]
        endIndex = text.find("\n/") 
        part = text

        if endIndex != -1:
            part = text[:endIndex]

        self.ParseItem(part)
        startIndex = text.find("/obj/item/clothing", endIndex)

ParseText使用文件的全文调用,其中包含新行。ParseText然后查找/obj/item/clothing,然后调用ParseItem包含额外文本。

商品代码示例:
/obj/item/clothing/suit/armor/vest/ert name = "emergency response team armor" armor = list(melee=30, bullet=30, laser=30, energy=30, bomb=20, bio=0, rad=0)

搜索ParseText有问题。虽然它会检测到这一点:

/obj/item/clothing/suit/armor/vest/ert

它还将检测到这一点:

/datum/outfit/job/centcom/response_team/commander/amber
    suit = /obj/item/clothing/suit/armor/vest/ert/command

注意空格和suit =. 据我所知,没有办法检查字符串是否正好在换行符处开始。有任何想法吗?

标签: pythonstringsearch

解决方案


当您在搜索词之前包含换行符时,第一次调用 find() 应该可以正常工作。我注意到你第二次调用它时,你没有那个换行符。这样一来,在找到第一个(从换行符开始)之后,它将从那里继续,并找到任何结果,无论它是否从换行符开始。


推荐阅读