我在java中使用正则表达式时遇到问题。
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)$我收到以下错误
"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.
谢谢
推荐答案这应该工作 ^(?:(?:( [01]?\\d | 2 [0-3]):))([0-5]?\\\ \\ d):)?([0-5]?\\d)$
原因是列出的符号在错误消息具有特殊含义,但 \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).
更多推荐
无效的转义序列(有效转义序列为\b \t \\\<br/> \f \ r \" \'\)
发布评论