Annika Annika - 2 months ago 33
Java Question

Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )

I have a problem with a regex in java.

When I try to use this regex:

^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$


I get the following error

"Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )"


I don't know how to handle that error.
I already tried to double the backslashes, but it didn't work.
I hope someone can help me with this.

Thanks

Answer

This should work ^(?:(?:([01]?\\d|2[0-3]):)?([0-5]?\\d):)?([0-5]?\\d)$

The reason is that the listed symbols in the error message have special meaning, but \d is not one of those defined special symbols for using \, this means you have to escape it (by adding an extra \ in front of the symbol).