首页 > 解决方案 > 如何在 Notepad++ 中将连字符与正则表达式合并?

问题描述

我有许多 OCR 编辑文本,行中间带有连字符。

示例:hyphen- ated这是一个在句子中间 有一个单词的文本。但它也有- dashes -像第二句话中的那些。后者不应修改。

我想要一个像下面这样的干净的文本,其中连字符被合并:

这是一个中间带有连字符的文本。但它也有 - 破折号 - 就像第二句话中的一样。后者不应修改。

通过删除连字符,-\s*\r?\n\s*\r?\n?如果连字符位于行尾,则此正则表达式会合并带连字符的单词。如何修改这个正则表达式来完成上述工作?连字符后的空格数可以是 1、2 或 3,例如hyphen- ated, hyphen- ated, hyphen- ated.

标签: regexnotepad++hyphen

解决方案


使用记事本++,您可以使用 thia 模式并替换为空字符串:

[^\s-]\K-\s{1,3}

模式匹配:

  • [^\s-]匹配除 - 或空白字符以外的单个字符
  • \K忘记到目前为止匹配的内容
  • -\s{1,3}匹配-和要删除的 1-3 个空白字符

正则表达式演示

-另一个匹配 1+ 空白字符并在右侧声明一个字符而不是空白字符的变体

[^\s-]\K-\s+(?=[^\s-])

正则表达式演示

或者使用 1-3 量词和前瞻:

[^\s-]\K-\s{1,3}(?=[^\s-])

推荐阅读