如何在Notepad ++中使用正则表达式来查找和替换重复的所有字符串"。"超过一定规模?

时间:2017-07-17 21:33:07

标签: regex notepad++

我有一个包含多种格式的文档:text ........ text,我想用一个'替换这些'。'的字符串。

正则表达式.*.似乎不起作用,我不知道为什么。任何建议都会很棒。

3 个答案:

答案 0 :(得分:3)

.*.匹配除了换行符以外的任何0 +字符,然后匹配换行符以外的任何字符。

你需要

查找内容\.{4,}
替换为,

\.{4,}将匹配4个或更多连续点。

enter image description here

<强>变体形式

如果您需要在1+点之前和之后需要水平空格并替换为\h+\K\.+(?=\h),则可以使用,并替换为,。在这里,\h+匹配1个或多个水平空格,\K省略匹配中的这些空格,\.+匹配1个或更多点,然后(?=\h)正向前导试图断言在最后一个点匹配后存在水平空格。

上述表达式的等价物为(?<=\h)\.++(?=\h)模式(其中(?<=\h)正向前瞻用于要求水平空格)。

使用捕获组可以获得相同的结果:搜索(\h)\.+(\h)并替换为$1,$2

请注意,这些模式中的+(一次或多次重复)也可以替换为limiting quantifier {min,max},其中max参数可能会丢失,只需确保你可以根据需要调整它的值。

答案 1 :(得分:3)

你需要转义点,因为它是一个符合任何符号的元字符。

你可以使用反斜杠来逃避它,例如\.或使用字符类,如[.]

要替换5个或更多项目的点序列,请使用[.]{5,}

注意:您可以将“一个或多个x”表示为x+而不是x*x,以避免重复x <的内容/ p>

答案 2 :(得分:1)

您可以尝试通过正则表达式查找:\.+\.{2,} 并替换为:.