python - 追加到一行

标签 python regex replace append carriage-return

我有一个特定的字符串fruits,如下所示:

Apples
Bananas
Pineapples

每行末尾以及字符串的开头和结尾处都有一个回车符\r。使用正则表达式,我将如何将 : 1 append 到第一行 Apples 的末尾?我尝试了以下方法,但没有成功:

re.sub("Apples(\r)", "\1:1", fruits)

我的想法是 \1 应该替换括号 (\r) 中的内容,但是模式中的所有内容都将被替换。

最佳答案

您正在做的是匹配 "Apples\r",捕获过程中的 "\r",然后将整个匹配替换为 "\r:1"

对于这个简单的示例,无论如何,都不需要捕获与 \r 的匹配,因为唯一匹配它的是 \r。您可以将其硬编码到替换字符串中。

我假设您希望结果字符串为"\rApples: 1\rBananas\rPineapples\r

您可以使用 lookbehind这样苹果就不会被消耗(尽管我听说每天吃一个可以让医生远离我):

re.sub("(?<=Apples)\r", ": 1\r", fruits)

但你也可以这样做:

re.sub("Apples\r", "Apples: 1\r", fruits)

如果你想在每个水果后面添加 : 1 ,lookbehind 会更有用:

re.sub("(?<=[^\r])\r", ": 1\r", fruits)

上面的内容是查找非 \r 字符后面的每个 \r,并将其替换为 : 1\r。结果将是:

# \rApples: 1\rBananas: 1\rPineapples: 1\r\r

关于python - 追加到一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758033/

相关文章:

python - mpi4py 是否有功能正常的 mprobe (improbe)?

python - 如何根据 ROC 结果设置 sklearn 分类器的阈值?

python - 从 Linux 命令或 Python 脚本中提取产品模型

java - 有限次数地随机替换字符串中的某个单词 | java

regex - 如何提取从行首到特定字符串的所有内容?

python - 在PyDev控制台中导入简历

python - 使用 pyautogui 自动化鼠标和键盘的更好方法

C++11 正则表达式匹配中的匹配

php - 使用正则表达式匹配 Laravel 路由中的子字符串

java - 我如何在java中替换{内部字符串