【发布时间】:2017-01-09 18:59:47
【问题描述】:
我认为我在 Java 中使用 Regex 匹配字符串有一个不错的句柄,但现在我尝试使用 Regex 替换字符串并且没有取得多大成功。
简单地说,我试图找到一个数字紧跟一个常量字符串“CMR”的位置,然后在数字和“CMR”子字符串之间添加一个空格。 “0CMR”应该变成"0 CMR", "5CMR"应该变成“5 CMR”等等。任何前面的非数字都应该保持原样。
所以我的源字符串是“theStringThat0CMRhas”
我的命令是:
replaceAll("[0-9]CMR", "[0-9] CMR");
我在结果中添加了空格,但结果变成了“theStringThat[0-9] CMRhas”,这显然不是我需要的。不知何故,我需要告诉正则表达式不要替换为“[0-9]”,而是替换它最初匹配的任何内容。
我知道我做错了,但我不知道什么是对的。
任何帮助表示赞赏。
谢谢,
汤姆
【问题讨论】:
-
stackoverflow.com/q/988655/438992 等等;在网上搜索这会发现大量信息。