python - 正则表达式用括号前的空格替换点

标签 python regex

我正在处理一些客户评论,其中一些评论不符合语法规则。例如,以下文本中的示例 (例如 s 和 b.) 为前一句提供了更多解释,该示例由两个点包围。

   text = "I was initially scared of ANY drug after my experience. But about a year later I tried. (Such as s and b.). I had a very bad reaction to this."

首先,我想找到。 (如 s 和 b.).,然后将 (如 s 和 b.) 之前的点替换为空格。这是我的代码,但它不起作用。

text = re.sub (r'(\.)(\s+?\(.+\)\s*\.)', r' \2 ', text )

输出应该是:

 "I was initially scared of ANY drug after my experience. But about a year later I tried  (Such as s and b.). I had a very bad reaction to this."

我正在使用Python。

最佳答案

提供的示例没有多大意义,因为唯一的变化是 ` 字符向左移动了一个位置。

但是,这可能会起作用(将点保留在括号内):

text = re.sub(r'\.\s*\)\s*\.', '.)', text)

或者将其放在外面:

text = re.sub(r'\.\s*\)\s*\.', ').', text)

编辑:或者您可能正在寻找这个来替换左括号之前的点?

text = re.sub(r'\.(?=\s*\(.*?\)\.)', ').', text)

关于python - 正则表达式用括号前的空格替换点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39946538/

相关文章:

python - 过滤掉张量中的非零值

python - DRF - 过滤 2 个模型

python - 如何用相同的代码满足不同的字符串格式化场景?

java - 如果不在方括号或圆括号内,则用逗号分隔字符串

regex - 控制容器中的自动换行

python - 停止 Pandas group by 中的处理循环

Python:创建字典

regex - 包含 Notepad++ 中所有特定字母的正则表达式

regex - 应用程序脚本正则表达式 : SyntaxError: Invalid quantifier

regex - 使用 maven-replacer-plugin 选择性替换正则表达式