【问题标题】:How to remove a space between two characters or strings in notepad++如何在记事本++中删除两个字符或字符串之间的空格
【发布时间】:2013-12-16 05:22:36
【问题描述】:

假设我在引用 "( the" 中有一个字符串,它出现在大量文本中。

我想删除非字母数字 ( 和字母数字 t 字符之间的空格

【问题讨论】:

    标签: regex


    【解决方案1】:

    以下正则表达式查找/替换将适用于所有人,而不仅仅是 ( t 出现:

    查找:\( ([a-zA-Z])

    替换:\(\1

    记得勾选对话框底部的正则表达式

    【讨论】:

    • 它确实匹配空格,但匹配也包括空格周围的字符。它应该只匹配空格。
    【解决方案2】:

    根据this answer,如果您使用的是 6.0 或更高版本,则可以使用与 Perl 兼容的正则表达式。因此,您可以执行以下正则表达式搜索和替换。

    replace (\W) (\w) with \1\2
    replace (\w) (\W) with \1\2
    

    这将首先删除任何非字母数字和字母数字字符之间的空格,然后是相反的(alnum、空格、非alnum)。

    【讨论】:

    • 它确实匹配空格,但匹配也包括空格周围的字符。它应该只匹配空格。
    • 但是当你用 \1\2 替换它时,你是在放回周围的字符,实际上只删除了空格。
    【解决方案3】:

    用空字符串替换正则表达式模式(?<=\()\s+(?=t)的匹配。

    如果空格后面可能出现任何字母数字字符,则使用模式(?<=\()\s+(?=[^\W_])

    【讨论】:

    • 它完全符合我的要求。也就是说,它只匹配字符之间的空格,不包括字符。
    • @Coddy - (?<=...) 是向后看,(?=...) 是向前看。我已经用图表更新了我的答案,这应该可以帮助您更好地理解它。
    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2015-06-08
    • 2013-09-23
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2019-01-24
    • 2016-07-01
    相关资源
    最近更新 更多