#java #regex #string #junit
#java #регулярное выражение #строка #junit
Вопрос:
я напишу тест Junit на Java, как проверить, совпадает ли регулярное выражение со строкой.
Например: Строка: BLEXABC-A00 Строка: ALEXABC-D00 Строка: CLEXABC-C00 Строка: DLEXABC-B00
Эта строка должна быть сопоставлена, например, с регулярным выражением [a-zA-Z]lex(abc-[a-zA-Z][0-9]) w?
Спасибо
Комментарии:
1. Вы ведь знаете, что javascript и java — это не одно и то же, верно? Неважно, я уже исправил теги для вас…
2. Плюс: что вы сделали, чтобы решить свою проблему? На самом деле это довольно просто, и множество ресурсов в Интернете могут помочь вам в этом…
Ответ №1:
Что-то вроде:
package ...;
import org.junit.Assert;
import org.junit.Test
public class ... {
@Test
public void regexMatches() {
Assert.assertTrue("BLEXABC-A00".matches("(?i)[a-zA-Z]lex(abc-[a-zA-Z][0-9])\w"));
Assert.assertFalse("Brexit".matches("(?i)[a-zA-Z]lex(abc-[a-zA-Z][0-9])\w"));
}
}
Где регулярное выражение (?i)
устанавливает режим без учета регистра. И обратные косые черты регулярных выражений, такие как в w
, должны быть экранированы сами по себе как \w
.