Python中的正则表达式搜索和替换

2024-04-25 18:03:17 发布

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

我想做一个正则表达式条件搜索。你知道吗

我想做的是,如果有回车符(\r)后跟大写和小写字母,我想添加空格('')并删除回车符,但如果在回车符之后还有其他内容,我只想替换它。在Python中使用regex有什么方法可以做到这一点吗

样本输入:

BCP-\rEngin\reerin\rg\rSyste\rms\rSupp\rort

输出:

BCP- Engineering Systems Support

数据是数据帧的形式。我目前正在使用测向替换()函数将“\r”替换为空格(“”),但我希望它是有条件的。你知道吗

下面是我的密码-

df_replace = df.replace(to_replace=r"\r", value = " ", regex=True)

Tags: 数据方法内容df条件replaceregex样本
2条回答

我找到了解决办法-

df_replace2 =  df.replace(to_replace = r"(\r)(?![A-Z])", value = "", regex=True)
df_replace3 = df_replace2.replace(to_replace = r"(\r)(?![a-z])", value = " ", regex=True)

感谢@Brigadeiro指导解决方案

我不熟悉python,但您需要的regex如下(也许有python经验的人可以编辑以自定义此代码):

这将查找大写字母前面的所有\r,因此将其替换为空字符串:

\\r(?![A-Z])

这将找到小写字母前面的所有\r,因此将其替换为空格:

\\r(?![a-z])

编辑

好的,这里有一个用Python编写的解决方案:

import re

myString = "BCP-\rEngin\reerin\rg\rSyste\rms\rSupp\rort"

myString = re.sub("\\r(?![A-Z])", "", myString)
myString = myString.replace("\r", " ")  # This can be simple string replace

相关问题 更多 >