У меня есть несколько строк в текстовом файле, например:
==Text==
Я пытаюсь сопоставить начало, используя это:
line.matches("^==[^=]")
Однако, это возвращает false для каждой строки ... небольшая помощь?
Насколько я помню, метод matches() ищет только точное совпадение.
matches()
matches автоматически привязывает регулярное выражение, поэтому регулярное выражение должно соответствовать всей строке. Попробуйте:
matches
line.matches("==[^=].*")
Вы также можете использовать String.startsWith("==");, если это что-то простое.
String.startsWith("==");
Если я правильно помню, matches вернет true, только если вся строка соответствует регулярному выражению. В вашем случае это не так. Чтобы использовать matches, вам нужно расширить свое регулярное выражение (используя подстановочные знаки), чтобы оно соответствовало концу строки. В качестве альтернативы вы можете просто использовать метод Matcher.find() для сопоставления подстрок строки
Matcher.find()
.matches возвращает true, только если вся строка совпадает. В вашем случае строка должна начинаться с '==' и содержать ровно один символ, который не был равен. Если вы хотите сопоставить эту строку для всей строки:
line.matches ( "== [^ =] * ==")
Попробуйте с line.matches("^==(.+?)==\\s*$")
line.matches("^==(.+?)==\\s*$")
try line.matches("^==[^=]*==$")