【问题标题】:MS Word - find all double spaces NOT after periodMS Word - 在句号之后查找所有双空格
【发布时间】:2015-03-19 20:49:40
【问题描述】:

我将如何查找和替换单词中不出现在句点之后的所有双空格?

我有一个文档(100 多页),其中不时有一个类似

的句子

这个[空格]是[空格]另一个[空格][空格]单词[空格]在[空格][空格]一个[空格]句子。

我想轻松删除这两个双空格。到目前为止,使用通配符,我已经能够选择它们,我会用一个空格替换,但是“查找”查找单词的方式,它将包括两个空格之前单词的最后一个字母。这是查找通配符搜索:

([!.  ])[  ]{2,}

但是,在上面的例句中,它会突出显示 "r[space][space]" 。如何仅用两个空格替换它?使用替换

[space]

将从该单词中删除“r”。我只想找到两个空格并用一个替换它。

感谢您的任何想法!

【问题讨论】:

    标签: regex ms-word


    【解决方案1】:

    我认为您需要查找 "([!.])[ ]{2}" 并替换为 "\1 "(无双引号)。

    *Input*: "This is another  word in  a sentence.  There is another one here."
    
    *Output*: "This is another word in a sentence.  There is another one here."
    

    【讨论】:

    • 嗯,它找到正确,但是找到时单词的最后一个字母仍然突出显示。在您的示例“输入”句子中,第一个查找将突出显示“r”,而不仅仅是“另一个”和“单词”之间的双空格。
    • 是的,它将突出显示符号位于 Find 表达式中。但是,它不会被替换,因为我们可以使用\1 将其复制回来。不可能不强调这一点,因为 MS Office 通配符中没有后向支持,并且 (?<![.])[ ]{2} 引发 The Find What text contains a Pattern Match expression which is not valid. 异常。我认为宏可以用于它。您对 VBA 解决方案感兴趣吗?
    • 啊哈!太好了,非常感谢。 VBA,虽然我很感兴趣,但并不是真的需要 - 我没有意识到“\1”会添加回突出显示的字母/选择。
    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多