Я пытаюсь завершить калькулятор строк Роя Ошерова как TDD упражнение, и поскольку у входов есть шаблон, я подумал, что буду использовать регулярное выражение, но это то, чего я не использовал в Java.
Два входных сигнала, которые я тестирую: String string = "//[***]\n1***2***3"
и String string = "//[*][%]\\n1*2%3"
.
Допустимые значения:
//[***]\n1***2***3
//;\n1;2
//[%%]\n1%%2%%3
//[*][%]\\n1*2%3
Мне удалось создать выражение, соответствующее первому вводу: Boolean matches = Pattern.compile("//(\\[(\\D+)])+\n.*").matcher(string).matches();
проблема в том, что когда я пытаюсь сопоставить вторую строку, я использую следующее, но, кажется, не совпадает: Boolean matches = Pattern.compile("//(\\[(\\D+)]+)+\\n.*").matcher(string).matches();
Любая помощь очень ценится, чтобы лучше понять, где я иду не так, Объект это все между \\
и \n
можно использовать в качестве разделителей для текста после '\ n'.