【问题标题】:Replace sequence of dots with one underscore用一个下划线替换点序列
【发布时间】:2011-03-18 15:48:47
【问题描述】:

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

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

有什么想法吗?

我正在使用 java。

【问题讨论】:

    标签: java regex string replace


    【解决方案1】:

    您可以将replaceall 方法用作:

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

    See it on Ideone

    正则表达式\\.+的解释

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

    我们也可以使用:

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

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

    【讨论】:

    • 不错的答案。 @Sergiu 不要忘记,如果它解决了您的问题,您可以(并且应该)将此答案标记为已接受。
    • @Dunaril:我一得到答案就尝试接受它,但我必须等待 10 分钟才能将其设置为接受,我不得不离开计算机。
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2013-12-04
    • 2011-07-12
    • 2016-01-15
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多