Skip to main content
 首页 » 编程设计

python之"ReplaceWith"&之但只是其中的一部分

2025年05月04日18TianFang

我需要对包含后跟空格的逗号的文本执行搜索/替换,以更改为逗号+空格。

所以我可以使用以下方法找到它:

,[^\s] 

但我正在为更换而苦苦挣扎;我不能只使用:

 , (space, comma) 

或者

& , 

因为匹配最初匹配两个字符。

有没有办法说 '&' - 1 ?或“&[0]”或其他意思;替换参数中的“匹配字符串,但只是其中的一部分”?

尝试提出这个问题的另一种方式:

  1. 我可以使用正则表达式来识别我的字符串的一部分吗。
  2. 但替换我的字符串的一部分(略有不同,但相关)。

我可能只是用逗号+空格替换每个逗号,但这更受控制,不太可能做出我不需要的更改....

例如:

原文:

Hello,World. 

应该变成:

Hello, World. 

但是:

你好,世界。

应该保持为:

Hello, World. 

目前,使用我的(坏的)模式我有:

原文:

Hello,World 

之后(错误):

Hello, orld 

我实际上正在为此使用 Python (2.6) 的“re”模块。

请您参考如下方法:

使用括号来捕获字符串的一部分是一种方法。另一种可能性是使用“先行断言”:

,(?=\S) 

此模式匹配逗号仅当后跟非空白字符时。它不匹配任何后跟逗号的内容,但使用该信息来决定是否匹配逗号。

例如:

>>> re.sub(r",(?=\S)", ", ", "Hello,World! Hello, World!") 
'Hello, World! Hello, World!'