首页 > 解决方案 > Python 中的正则表达式搜索和替换

问题描述

我正在寻找进行正则表达式条件搜索。

我要做的是如果有回车(\r)后跟大写和小写字母,我想添加空格('')并删除回车,但如果在回车后还有其他我只想替换那。有没有办法在 Python 中使用正则表达式来做到这一点

样本输入:

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

输出:

BCP- 工程系统支持

数据采用数据框的形式。我目前正在使用 df.replace() 函数将“\r”替换为空格(“”),但我希望它是有条件的。

下面是我的代码 -

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

标签: pythonregex

解决方案


我对python不熟悉,但是您需要的正则表达式如下(也许有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

推荐阅读