我有一个特定的字符串fruits
这样:
Apples
Bananas
Pineapples
每行的末尾以及字符串的开头和结尾都有回车符
\r
。使用RegEx,如何将: 1
附加到第一行Apples
的末尾?我尝试了以下无济于事:re.sub("Apples(\r)", "\1:1", fruits)
我的想法是
\1
应该替换括号(\r)
中的内容,但是模式中的所有内容都将被替换。 最佳答案
您正在做的是匹配"Apples\r"
,在过程中捕获"\r"
,然后将整个匹配项替换为"\r:1"
。
对于这个简单的示例,无论如何都不需要捕获\r
的匹配项,因为唯一匹配的是\r
。您可以将其硬编码到替换字符串中。
我假设您希望结果字符串为"\rApples: 1\rBananas\rPineapples\r
。
您可以使用lookbehind,这样就不会消耗Apples
(尽管我听说每天消耗一剂会使医生远离):
re.sub("(?<=Apples)\r", ": 1\r", fruits)
但是您也可以这样做:
re.sub("Apples\r", "Apples: 1\r", fruits)
如果您想在每个水果后添加
: 1
,则后向查找会更有用: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/