用一个下划线替换点序列

时间:2011-03-18 15:48:48

标签: java regex string replace

我有一个包含任意数量点的字符串,有时也是一系列点。

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

有什么想法吗?

我正在使用java。

1 个答案:

答案 0 :(得分:10)

您可以将replaceall方法用作:

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

See it on Ideone

正则表达式\\.+

的说明

.是一个正则表达式元字符,可以匹配任何内容(换行符除外)。由于我们希望匹配文字.,我们将其与\一起转义。由于Java字符串和正则表达式引擎都使用\作为转义字符,因此我们需要使用\\+是一个或多个的量词。

或者我们可以使用:

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

由于字符类中的.字面意义上处理,因此无需转义它。