我正在通过跟随this tutorial来学习GWT,但是在第4步中我还没有完全理解这一点。以下行检查字符串是否与模式匹配:
if (!str.matches("^[0-9A-Z\\.]{1,10}$")) {...}
在检查Pattern the documentation后,我理解字符^和$代表行的开头和结尾,[...] {1,10}表示括号中的部分[...]必须至少出现一次,但不得超过10次。我不明白的是括号内部分的最终字符。 0-9A-Z表示从0到9或从A到Z的字符范围。但是\\是什么。意思?
答案 0 :(得分:3)
匹配点字符。由于dot在regexp中具有特殊含义,因此必须使用反斜杠进行转义。因为反斜杠在Java字符串中具有特殊含义,所以必须使用另一个反斜杠进行转义。
答案 1 :(得分:1)
答案 2 :(得分:1)
匹配点字符。双斜杠'\\'只是意味着单个'\',因为你必须在java字符串中转义'\'。所以'\\。'被翻译成'\。'这意味着只匹配一个'。'字符。如果你刚用'。'它本身就没有逃脱,它会匹配任何角色。所以你必须逃避它,以匹配'。'字符。
答案 3 :(得分:1)
点“。”在正则表达式中意味着“任何角色”。转义点“。” (或“\。”)表示点字符本身(没有任何特殊的正则表达式行为,如非转义点)。
因此,例如,“123.ABC”可以是与给定正则表达式匹配的行(不包括换行符等)。