Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将点序列替换为一个下划线_Java_Regex_String_Replace - Fatal编程技术网

Java 将点序列替换为一个下划线

Java 将点序列替换为一个下划线,java,regex,string,replace,Java,Regex,String,Replace,我有一根绳子,上面有任意数量的点,有时也有一系列的点 我想将每个(点)替换为.(下划线),但是当有一系列点时,也应该只产生一个下划线 有什么想法吗 我正在使用java。您可以使用replaceall方法,如下所示: str = str.replaceAll("\\.+","_"); 正则表达式的解释\.+ 是一个正则表达式元字符,可以匹配任何内容(新行除外)。因为我们想要匹配一个文本,所以我们用\来转义它。由于Java字符串和正则表达式引擎都使用\作为转义字符,我们需要使用\,+是一个或多个

我有一根绳子,上面有任意数量的点,有时也有一系列的点

我想将每个
(点)替换为
.
(下划线),但是当有一系列点时,也应该只产生一个下划线

有什么想法吗


我正在使用java。

您可以使用
replaceall
方法,如下所示:

str = str.replaceAll("\\.+","_");

正则表达式的解释
\.+

是一个正则表达式元字符,可以匹配任何内容(新行除外)。因为我们想要匹配一个文本
,所以我们用
\
来转义它。由于Java字符串和正则表达式引擎都使用
\
作为转义字符,我们需要使用
\
+
是一个或多个字符串的量词

或者,我们可以使用:

str = str.replaceAll("[.]+","_");

由于字符类中的
是按字面意思处理的,因此不需要对其进行转义。

答案不错@Sergiu别忘了,如果这个答案解决了你的问题,你可以(也应该)将它标记为已接受。@Dunaril:我一拿到答案就试着接受它,但我必须等待10分钟,直到我能将它设置为已接受,我不得不离开计算机。