我有一个像这样的字符串:
String sample = "name:Bob | time:2:20";
我正在练习正则表达式并尝试使用以下代码尝试从2:20删除“:”
sample = sample.replace("(?<=0-9):","");
正则表达式在哪里不正确,因为它似乎不起作用。
答案 0 :(得分:1)
这应该有效:
sample = sample.replaceAll("(?<=[0-9]):", "");
但是通过使用捕获组而不是lookbehinds可以提高效率:
sample = sample.replaceAll("([0-9]):", "$1");
其中[0-9]
是由[character class]
到0
的字符范围组成的9
,其中我们将(capturing group)
分组到$reference
内替换模式中基于索引的:
:我们不是用空字符串替换foreach
,而是用数字替换数字和跟随冒号。