我刚开始在java中使用正则表达式,我创建了一个监控澳大利亚股市的应用程序。我希望能够确保用户输入了3个大写字母,一个fullstop和AX。 - 像BHP.AX这样的东西 所以我尝试使用以下内容:
if(input.matches("^[A-Z]{3}\.AX$")){ //do something }
然而,这给我一个错误说“非法逃脱字符” 任何人都可以给我任何帮助吗
答案 0 :(得分:8)
字符串必须为"^[A-Z]{3}\\.AX$"
。令人困惑的部分是\
既是Java转义字符又是正则表达式转义字符。您所做的正则表达式是正确的,但\.
被Java解释为“逃避''。” ”。如果你如上所述转义反斜杠("^[A-Z]{3}\\.AX$"
),Java会将字符串解释为^[A-Z]{3}\.$
,这是你想要的正则表达式。
答案 1 :(得分:3)
你需要逃避反斜杠,否则你将逃避这段时间。
if(input.matches("^[A-Z]{3}\\.AX$")){ //do something }