java - 用点构建正则表达式

标签 java regex

如果包围/前面/后面是非数字,我想用空格替换点,如果包围/前面/后面是数字,则不执行任何操作。

例如,字符串“我跑了 4.4 公里。总共 2 次。”将变成“我跑了 2 次,总计 4.4 公里”

我需要帮助来构建这个正则表达式。我正在使用这个:

string.replaceAll("[D].", "[D]")

并且,仅获得大量点。

最佳答案

您可以使用前瞻和后瞻,例如

System.out.println(Str.replaceAll("(?<=\\D)\\.(?=\\D|$)", ""));

正则表达式说明

(?<=\\D) #Lookbehind to match non-digit
\\. #Match . literally
(?=\\D|$) #Lookahead to match non-digit or end of string

关于java - 用点构建正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229109/

相关文章:

java - Android 应用程序 Web View 后退按钮

ruby-on-rails - 在 Rails 3 中,如何验证字符串只匹配几个字符串

java - 正则表达式无法在java中找到重复标记

javascript - 抓取YouTube ID和其他变量以嵌入JavaScript

php - 使用 PHP 从 html 标签中删除属性,同时保留特定属性

java - 如何从 Collection 中返回 N 个连续的元素?

java - 有没有办法使用 google auto-ml 的rest api 生成客户端ID 和客户端 key ?

Javascript 正则表达式替换不起作用

java - Vaadin 树中的项目太多

java - 如何在 JavaFX 中创建对话框