Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: Regex replacing

I have this String:

foo bar 567 baz

Now I want to add before each number the String num:.
So the result has to be:

foo bar num:567 baz

Also this has to work:

foo 73761 barbazboom!! 87
result:
foo num:73761 barbazboom!! num:87

The regex to search number is this: [0-9]+
But I want to replace the matching substring with num: + [the matching substring]

I now wrote an example with numbers, but an other example can be: add before each e-mail-address Email found:

like image 921
Martijn Courteaux Avatar asked Mar 20 '26 07:03

Martijn Courteaux


2 Answers

Make use of grouping. You can use the parentheses ( and ) to define groups and identify the group in the result by $n where n is the group index.

String string = "foo bar 567 baz";
String replaced = string.replaceAll("(\\d+)", "num:$1");
like image 139
BalusC Avatar answered Mar 22 '26 21:03

BalusC


"foo bar 567 baz".replaceAll("(\\d+)", "num:$1");
like image 32
dfa Avatar answered Mar 22 '26 19:03

dfa