Я не очень хорошо разбираюсь в регулярных выражениях и прочее, поэтому мне нужна помощь. Я должен проверить, соответствует ли входное значение определенному формату регулярного выражения. Вот формат, который я хочу использовать, 25D8H15M
. Здесь D
означает количество дней H
означает часы, а M
означает минуты. Мне нужно регулярное выражение для проверки строки. БлагодаряПроверьте, соответствует ли строка конкретному регулярному выражению
ответ
Вот кратчайший способ кодирования регулярного выражения:
if (str.matches("(?!$)(\\d+D)?(\\d\\d?H)?(\\d\\d?M)?"))
// format is correct
Это позволяет каждой части быть необязательными , но негативный взгляд на конец ввода в начале означает, что должно быть somethi ng есть.
Обратите внимание, как с Java вы не должны кодировать старт (^
) и конец ($
) входа, потому что String.matches()
должен соответствовать строке в весь, так что начало и конец подразумеваемые.
Однако это просто рудиментарное регулярное выражение, потому что пройдет 99D99H99M
. Регулярное выражение для действительного формате будет:
if (str.matches("(?!$)(\\d+D)?([0-5]?\\dH)?([0-5]?\\dM)?"))
// format is correct
Это ограничивает часы и минуты до 0-59
, позволяя дополнительным ведущим нулем для значений в диапазоне 0-9
.
Спасибо, это было то, что мне нужно. –
Упрощенное регулярное выражение может быть:
^\\d{1,2}D\\d{1,2}H\\d{1,2}M$
спасибо @anubhava за ответ, у меня есть вопрос, что же означают цифры в фигурных скобках? –
'\\ d {1,2}' означает соответствие 1 или 2 цифрам, эти числа означают нижний предел и верхний предел # совпадающих шаблонов. – anubhava
Try,
String regex = "\\d{1,2}D\\d{1,2}H\\d{1,2}M";
String str = "25D8H15M";
System.out.println(str.matches(regex));
- 1. Проверьте, соответствует ли строка регулярному выражению
- 2. Проверьте, соответствует ли выражение регулярному выражению
- 3. Строка не соответствует регулярному выражению
- 4. Проверьте, соответствует ли строка конкретному формату?
- 5. Почему эта строка соответствует регулярному выражению?
- 6. Застревание по конкретному регулярному выражению
- 7. Частично соответствует регулярному выражению
- 8. Что соответствует (\\ & | $) регулярному выражению
- 9. не соответствует регулярному выражению
- 10. Невозможно соответствует регулярному выражению
- 11. Как проверить, соответствует ли подстрока регулярному выражению?
- 12. Проверьте, существует ли массив ключей, который соответствует регулярному выражению
- 13. Проверьте, соответствует ли соответствие регулярному выражению многострочному комментарию
- 14. Строка к регулярному выражению
- 15. возвращающая строка, соответствующая регулярному выражению
- 16. Как проверить, соответствует ли строка регулярному выражению в javascript?
- 17. unix: как определить, соответствует ли строка регулярному выражению
- 18. Boolean проверить, соответствует ли строка регулярному выражению в ruby?
- 19. Соответствует ли JavaScript регулярному выражению повторному коду?
- 20. Проверка строки соответствует регулярному выражению
- 21. Соответствует регулярному выражению с потоками
- 22. Соответствует регулярному выражению в java
- 23. Что соответствует этому регулярному выражению?
- 24. Perl не соответствует регулярному выражению?
- 25. Что соответствует этому регулярному выражению?
- 26. Почему не соответствует регулярному выражению?
- 27. выражение не соответствует регулярному выражению
- 28. Что соответствует следующему регулярному выражению?
- 29. Что соответствует этому регулярному выражению?
- 30. Соответствует специальному регулярному выражению utf8
Я не понимаю. Почему downvote !! Это конструктивный вопрос –
Вероятно, нисходящий (не я), потому что вы не предприняли никаких усилий, чтобы попытаться решить проблему или даже описать ключевые точки одного. – Bohemian
@Bohemian, что мне нужно сделать: проверьте, действительно ли данная строка действительна, допустимые значения: 1D - 2D15H - 5H33M - 22D30M - 15D12H45M и т. Д. –