Мне нужно выражение регулярного выражения, чтобы проверить, соответствует ли имя файла следующему шаблону: report*.txt
и не содержит следующую строку «car
». Так report_car_as.txt
, rep_as
, report_tds
, он должен возвращение ложным, и report_abc.txt
, report_sa.txt
он должен возвращающие.Выражение выражения: имена файлов, которые не содержат слова и соответствуют заданному шаблону.
У меня есть следующие строки кода:
final File f = new File("~/home/report_fds.txt");
final String regex1 = "^((?!car).)*$";
final String regex2 = "report.*\\.txt";
System.out.println(f.getName().matches(regex2));
Я не знаю, как совместить эти 2 регулярных выражений выражений. Не могли бы вы мне помочь?
Примечание: Я не разрешено использовать, если заявление, как
if(a.matches(regex1) && a.matches(regex2));
Может быть, [ '^ (?!. * Автомобиль). * доклад [^ /] * \. TXT $ '] (https://regex101.com/r/lL0nE9/1). Или '^. * (?!. * Автомобиль) отчет [^ /] * \. Txt $'. Это зависит от того, где «автомобиль» должен быть запрещен. Или что-то вроде '^ ~ (?:/[^ /] *) * (?!. * Car) report [^ /] * \. Txt $'. –