Java Игра в шахматы Регекс - PullRequest
0 голосов
/ 04 марта 2020

Я сейчас работаю над игрой в шахматы в java. Я хочу создать метод для проверки формата ввода строки. Типичный шахматный ход в моей игре:

e2 e4 
a1 a3 

В общем, это:

[letter][number][space][letter][number]

Как я могу проверить этот формат с помощью регулярного выражения? Я довольно новичок в регулярных выражениях и буду признателен за любую помощь

Пока у меня есть:

[a-h]+[1-8]+\s+[a-h]+[1-8]

Ответы [ 2 ]

1 голос
/ 04 марта 2020

([a-h][1-8] [a-h][1-8])

https://regexr.com/ - отличный ресурс, который вы должны проверить.

0 голосов
/ 04 марта 2020

Использование [A-Ha-h][1-8] [A-Ha-h][1-8]

Демонстрация:

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", "x1 y2", "e0 e4",
                "e1 e9", "e2 x1", "x1 e2" };
        for (String s : testStrs) {
            if (s.matches("[A-Ha-h][1-8] [A-Ha-h][1-8]")) {
                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
x1 y2 <-failed
e0 e4 <-failed
e1 e9 <-failed
e2 x1 <-failed
x1 e2 <-failed
...