我有很多OCR文本,中间有连词。
例:这是一个文本,在句子的中间有“<代码>连字符< /代码>单词。但是它也有像第二句中那样的-破折号-
。后者不应修改。
这是一段中间有连字符的文字。但它也有破折号,就像第二句中的破折号一样。后者不应修改。
通过删除连字符,这是-\s*\r?\n\s*\r?\n如果连字符位于行的末尾,则code>regex合并连字符的单词。如何修改此正则表达式以执行上述工作?连字符后面的空格数可以是1、2或3,如
连字符
,连字符
,连字符
。
使用记事本,您可以使用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