我目前正在用Java开发国际象棋游戏。我想创建一种方法来检查字符串输入的格式。我的游戏中典型的下棋动作是:
e2 e4
a1 a3
通常,其:
[letter][number][space][letter][number]
如何使用正则表达式检查此格式?我对正则表达式还很陌生,希望对您有所帮助
到目前为止,我有:
[a-h]+[1-8]+\s+[a-h]+[1-8]
(\w{1}\d \w{1}\d)
https://regexr.com/是您应该检查的重要资源。
执行以下操作:
public class Main {
public static void main(String[] args) {
// Tests
String[] testStrs = { "e2 e4", "a1 a3", "1a e4", "a1 4e", "12 34", "ab cd", "e2e4", "e1 e4" };
for (String s : testStrs) {
if (s.matches("[A-Za-z]{1}[0-9]{1} [A-Za-z]{1}[0-9]{1}")) {
System.out.println(s + "<-passed");
} else {
System.out.println(s + "<-failed");
}
}
}
}
输出:
e2 e4<-passed
a1 a3<-passed
1a e4<-failed
a1 4e<-failed
12 34<-failed
ab cd<-failed
e2e4<-failed
e1 e4<-failed