我有一个包含多种格式的文档:text ........ text
,我想用一个'替换这些'。'的字符串。
正则表达式.*.
似乎不起作用,我不知道为什么。任何建议都会很棒。
答案 0 :(得分:3)
.*.
匹配除了换行符以外的任何0 +字符,然后匹配换行符以外的任何字符。
你需要
查找内容:\.{4,}
替换为:,
\.{4,}
将匹配4个或更多连续点。
<强>变体形式强>:
如果您需要在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,}
并替换为:.