在Python中查找StringB之前的最后一个stringA实例

2024-09-25 14:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些字符串,我正试图从一个HTML文件提取。有许多这样的字符串(长话短说),它们通常遵循“xsomestuffwritenhere!”,开头有“X”和“!”最后。你知道吗

我已经写了一些乱七八糟的代码,从HTML中提取了其中的大部分,但是我发现在处理有“!”在我想摘录的部分中间。e、 g

XWTF!ThatMakesNoSense!

我一直在使用.find()来获取段落的索引,以便在HTML的行中切掉它们。e、 g.:

line[line.find("X"):line.find("!")+1]

在HTML文件中(上下文:Facebook消息记录)所有的东西都被格式化成奇怪的格式(去你的扎克伯格),所以一个X。。。!两边都可以有任何文字。我指出这一点是因为我必须添加到我的代码中

re.search(" ", line[line.find("X"):line.find("!")])

以确保稍后“!”不会影响我的索引。e、 g.:

Xsomething! This is a new sentence!

所以,我现在的问题是,我不知道当一个“出现在一节的中间,带有“!”在我想提取的最后。你知道吗

我想基本问题可以归结为:如何在stringB的第一个实例之前找到stringA的最后一个实例,在本例中,stringB是一个空格。你知道吗

我希望这一切都有意义。对我的绝望感到抱歉。自从我做了一个Python模块之后,我已经有一年没有编程了,回来主要是为了一个项目。你知道吗


Tags: 文件实例字符串代码消息facebookhtmlline
1条回答
网友
1楼 · 发布于 2024-09-25 14:26:55

第一件事:您不应该通过简单的字符串处理来解析HTML;您应该尝试使用BeautifulSoup。你知道吗

不管怎样,试着这样做:

matches = re.findall(r'X\S+!', my_input_string)
print(matches)

相关问题 更多 >