如何从单行字符串中查找子字符串

2024-09-24 02:17:46 发布

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

假设我有一个字符串,s=“panipanamPanjoepan”。从这里我想找到单词pan并用空格替换它,这样我就可以得到输出字符串“I AM JOE”。我该怎么做

实际上,我也不知道如何从没有空格的长字符串中找到特定的子字符串。 如果有人能帮我了解这一点,那就太好了


Tags: 字符串am单词pan空格joepanipanampanjoepan
3条回答

正如DarrylG和其他人所提到的,.replace将按照您的要求执行,您可以定义要替换的内容(“pan”)以及要用(“”)替换的内容

要在较长的字符串中查找某个字符串,可以使用.find(),它将要查找的字符串以及从何处开始和停止查找它(作为整数)作为参数

如果要在较大的字符串中查找字符串的所有匹配项,有两个选项:

  • 使用find()查找字符串,然后剪切该字符串,使其不再包含searchterm,并重复此操作,直到.find()方法返回-1(这意味着在字符串中再也找不到searchterm)
  • 或者使用regex模块并使用.finditer方法查找字符串Link to someone explaining exactly that on stackoverflow.的所有出现处

编辑:如果你不知道你在搜索什么,这会变得有点棘手,但是你可以编写一个正则表达式,使用相同的正则表达式模块来提取这些数据。这很容易,如果你知道最终的结果应该是什么(在你的情况下,我是乔)。如果您不这样做,它会变得更加复杂,我们需要更多的信息来帮助您

s="panpanIpanAMpanJOEpan"
print(s.replace("pan"," ").strip())

使用替换

输出:

I AM JOE 

如果你不知道pan,你可以利用你想要找到的字母都是大写的

fillword =  min(set("".join(i if i.islower() else ' ' for i in s).split(' '))-set(['']),key=len)

首先用空格替换所有大写字母,然后在空格上拆分并找到最小的非空单词

使用replace替换为空格,然后使用strip删除多余的间距

 s="panpanIpanAMpanJOEpan"
 s.replace(fillword,' ').strip()

给出:

'I AM JOE'

相关问题 更多 >