提问者:小点点

如何在记事本中合并带连字符的单词与正则表达式?


我有很多OCR文本,中间有连词。

例:这是一个文本,在句子的中间有“<代码>连字符< /代码>单词。但是它也有像第二句中那样的-破折号-。后者不应修改。

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

通过删除连字符,这是-\s*\r?\n\s*\r?\nregex合并连字符的单词。如何修改此正则表达式以执行上述工作?连字符后面的空格数可以是1、2或3,如连字符连字符连字符


共2个答案

匿名用户

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

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

模式匹配:

  • [^\s-]匹配除-或空白字符以外的单个字符

正则表达式演示

另一个变体匹配1个空白字符,并断言除-或右侧空白字符之外的单个字符

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

正则表达式演示

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

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

匿名用户

您可以查找后跟-的非空格(单词的结尾):

([^\s\d])(-\s+)

然后简单地替换为$1,保留单词的最后一个字符不变。

下面是一个关于regex101的工作示例。com:
https://regex101.com/r/Zl7lvR/1