C# regex составить регулярное выражение
Необходимо составить регулярное выражение для входной строки, вот моя попытка:
Regex regex = new Regex(@"\A[pPrRnNbBqQkK][a-zA-Z][1-8]-[a-zA-Z][1-8][pPrRnNbBqQkK]*");
Итак, из чего должна состоять строка, которую я собираюсь проверять: первая буква p, r, n, b, q или k в верхнем или нижнем регистре, дальше идет буква в диапазоне a-h в в. или н. регистре, дальше цифра от 1 до 8, дальше "-", потом опять буква a-h и цифра 1-8 и в конце необязательная буква prnbq в в. или н. регистре
Пожалуйста, помогите исправить мою попытку.
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
(?i)^[prnbqk][a-h][1-8]-[a-h][1-8][prnbqk]?$
См. пример работы регулярного выражения.
Подробности
(?i)- регистронезависимый поиск^- начало строки[prnbqk]- буква из набораprnbqk[a-h]- буква отaдоh[1-8]- цифра от 1 до 8-- дефис[a-h]- буква отaдоh[1-8]- цифра от 1 до 8[prnbqk]?- необязательная буква из набораprnbqk$- конец строки.
