找到子串的所有出现,然后在python中删除前几个字符,直到所有出现的前一个空格

时间:2016-07-08 18:17:50

标签: python regex string

我无法找到如何执行此操作:

string = "A'' E'R4 B CR2 G''R8"

我想要做的是在字符串中找到所有R字符,然后删除前一个字符,直到前一个空格,如下所示:

"A'' R4 B R2 R8"

如果有人可以帮助我们走向何方,我将不胜感激,我是Python的新手。

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式来解决此问题。

>>> import re
>>> 
>>> s = "A'' E'R4 B CR2 G''R8"
>>> re.sub(r"(?<=\s)\S+(?=R)", "", s)
"A'' R4 B R2 R8"

其中:

  • (?<=\s)是匹配单个空格字符的正向后视
  • \S+将匹配一个或多个连续的非空格字符
  • (?=R)是匹配R字符的肯定前瞻

您根本不能涉及任何分组:re.sub(r"\s\S+R", " R", s)