This regex question is kind of an extension of this question
Input
String input="first number <start number>123.45<end number>
and second number 678.90."
Desired output
String output="first number <start number>123.45<end number>
and second number <start number>678.90<end number>."
What I tried
I have a negative lookback for <number start>
and a negative lookahead for <number end>
:
String regex="(?<!(<number start>))\\d+(\\.\\d+)?(?!(<number end>))
// ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
// negative lookback negative lookahead
// ^^^^^^^^^^^^^
// float match
But the problem is that for a String <number start>12.34<number end>
it will match on 2.3
.
When I include quantifiers in the lookback I get an error
String regex="(?<!(<number start>\\d+))\\d+(\\.\\d+)?(?!(\\d+<number end>))
// ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
// negative lookback negative lookahead
// ^^^^^^^^^^^^^
// float match
Thanks for the help!