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

标签 python regex match

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

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

,[^\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!'

关于python - "ReplaceWith"& - 但只是其中的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233058/

相关文章:

javascript - RegExp 适用于 String.match,但不适用于 String.split

rust - 不匹配的arm是否会在Rust的 "match"语句中获取变量的所有者?

python - Django 通过类与 ManytoMany 字段进行同步

python - 将列表或值传递给 Python 中的函数

python - 无法在 AWS Lambda 上使用请求模块

C++ 正则表达式 : matching a label followed by comma separated values

带有正则表达式的 MySQL 查询在 Drupal 中不起作用

mysql - 在 Phpmyadmin 中搜索所有包含 "fileadmin"和 ".pdf"的 WordPress 帖子

python - 使用 Python 和 subprocces.call 执行脚本的问题在 Bash 中仍然有效

r - 更快的 %in% 运算符