【问题标题】:How to replace full stop space and lowercase character with comma space lowercase character?如何用逗号空格小写字符替换句号空格和小写字符?
【发布时间】:2021-12-07 03:55:28
【问题描述】:

我有一些 OCRed 文档,其中逗号在某些地方被识别为句号。

像这样:

staring thoughtfully into his empty coffee cup. and he absently

如何在文档中找到这些实例并替换它们,而无需查找每个 '. ' 手动?

我无法理解不同的表达方式。

我知道我可以使用[a-z]\.(.)[A-Z] 来查找和标记'p。在此示例中为 a',但它也标记为 'p。 A'。

我只想更改 'p. a' 在这些情况下改为 'p, a'。

这可能吗?

【问题讨论】:

  • 这不是你可以用正则表达式做的事情,“快速思考。Jon 想出了一个例子!” - 模式如何知道是否应该这样做是逗号?

标签: notepad++


【解决方案1】:

(.) 部分捕获组中除换行符以外的任何字符,[A-Z] 匹配大写字符。

在这种情况下,您不需要该组,您可以匹配一个小写字符 a-z 后跟一个点,并在右侧断言空格后跟一个小写字符。

要不删除已经匹配的小写字符,您可以使用\K 清除到目前为止匹配的内容。在替换中使用逗号。

-> 启用“正则表达式”

-> 检查“匹配大小写”

-> 勾选“环绕”

查找内容:

[a-z]\K\.(?=\h+[a-z])

替换为:

,

查看regex demo

【讨论】:

  • 这对于找到 'word. word' 是,但我无法执行替换。查找:[az]\K\.(?=\h+[az]) 替换:[az]\K\,(?=\h+[az]) 不起作用,查找:[az]\K \.(?=\h+[az]) 替换: ,.对不起。在替换字段中应该写什么?以及如何在此评论部分换行?
  • @ErikLiterature 您是否启用了正则表达式,然后全部替换?您可以仅用逗号替换。我已经更新了答案。
  • 我做到了。如果我按全部替换它会替换所有'。 ' 加上 ', ' 还要在大写字符之前。
    ' 两周前。它成就了他”变成了“两周前,它成就了他”。
  • @ErikLiterature 您还必须检查“匹配大小写”。
  • 好的。我以为我已经在主文档中做到了,但没有。我认为它现在有效。谢谢你。我似乎无法正确换行。两个空格不起作用。
猜你喜欢
  • 2016-05-09
  • 2015-07-16
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
相关资源
最近更新 更多