Что такое регулярное выражение для формата даты dd \ mm \ yyyy? Я не могу найти регулярное выражение для этого формата?Что такое регулярное выражение для формата даты dd mm yyyy?
ответ
На мой взгляд, лучше всего проверить форматирование с использованием регулярного выражения, но проверить правильность с кодом (Java, в вашем случае). Было бы абсурдно многословным пытаться проверять такие вещи, как разные дни в месяц и прыжки лет с регулярным выражением.
Я предлагаю разбор даты, используя регулярное выражение, как ([0-9]{2})\\([0-9]{2})\\([0-9]{4})
, а затем извлечь каждую часть (dd
, mm
и yyyy
, соответственно), и попытаться создать java.util.Date
объект из них.
Обратите внимание на следующее:
- Сроки, как правило, написаны с косой черты (
/
) не слэш (\
), - В Java строки, чтобы написать обратный слэш в регулярном выражении, вы будете иметь на самом деле написать
\\\\
для двух обратных косой черты (\\
). В java-строках для написания обратного слэша нам нужен escape-символ (который снова является\
).
+1 Не должно быть '([0-9] {2}) \\\\ ([0-9] {2}) \\\\ ([0-9] {4})'? – blackcompe
Да, это должно быть в строке Java. Регулярное выражение выше является типичным регулярным выражением, но если вы используете строку Java, необходимо использовать четыре разреза (см. Примечание ** (b) ** в конце моего ответа). –
Вижу. Спасибо за разъяснения. – blackcompe
Это one довольно хорошо.
/**
* Created with IntelliJ IDEA.
* User: S34N
* Date: 2013/07/30
* Time: 8:21 AM
* To change this template use File | Settings | File Templates.
*/
//Import the required classes/packages
import javax.swing.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class dateInputScan {
public static void main(String args[]) {
dateInputScan run = new dateInputScan();
run.dateInputScan();
}
public void dateInputScan() {
//Instantiating variables
String lvarStrDateOfTransaction = null;
DateFormat formatter = null;
Date lvarObjDateOfTransaction = null;
//Use one of the following date formats.
lvarStrDateOfTransaction = "29/07/2013";
//lvarStrDateOfTransaction = "29-07-2013";
//lvarStrDateOfTransaction = "20130729";
//lvarStrDateOfTransaction = "2013-07-29";
//lvarStrDateOfTransaction = "29/07/2013";
//You can also add your own regex (Regular Expression)
if (lvarStrDateOfTransaction.matches("([0-9]{2})/([0-9]{2})/([0-9]{4})")) {
formatter = new SimpleDateFormat("dd/MM/yyyy");
} else if (lvarStrDateOfTransaction.matches("([0-9]{2})-([0-9]{2})-([0-9]{4})")) {
formatter = new SimpleDateFormat("dd-MM-yyyy");
} else if (lvarStrDateOfTransaction.matches("([0-9]{4})([0-9]{2})([0-9]{2})")) {
formatter = new SimpleDateFormat("yyyyMMdd");
} else if (lvarStrDateOfTransaction.matches("([0-9]{4})-([0-9]{2})-([0-9]{2})")) {
formatter = new SimpleDateFormat("yyyy-MM-dd");
} else if (lvarStrDateOfTransaction.matches("([0-9]{4})/([0-9]{2})/([0-9]{2})")) {
formatter = new SimpleDateFormat("yyyy/MM/dd");
}
try {
lvarObjDateOfTransaction = formatter.parse(lvarStrDateOfTransaction);
JOptionPane.showMessageDialog(null, "Date: " + lvarObjDateOfTransaction);
} catch (Exception ex) { //Catch the Exception in case the format is not found.
JOptionPane.showMessageDialog(null, ex);
}
}
}
регулярное выражение для шаблона дд/мм/гггг
String regex = "^([0-2][0-9]||3[0-1])/(0[0-9]||1[0-2])/([0-9][0-9])?[0-9][0-9]$";
Я попробовал этот ^[0-3]{1}[0-9]{1}/[0-1]{1}[1-2]{1}/[1-9]{1}[0-9]{3}$
и он работает
String dateRegEx="^[0-3]{1}[0-9]{1}/[0-1]{1}[1-2]{1}/[1-9]{1}[0-9]{3}$";
System.out.println(Pattern.matches(dateRegEx, "01/01/1990"));
([0-2][0-9]||3[0-1])\\(0[0-9]||1[0-2])\\((19|20)\d\d)
Выше регулярное выражение будет проверять первые 2 чара cter в диапазоне между 0-31 тогда следующей группы должны содержать символ между диапазоном 0-12 тогда следующей группой содержит год между диапазоном 1900-2099
Это работает прекрасно для меня
- 1. Регулярное выражение для формата даты yyyy-mm-dd не работает
- 2. Регулярное выражение для формата даты -dd-mm-yyyy в Javascript
- 3. YYYY/MM/DD формат даты регулярное выражение
- 4. Что такое регулярное выражение для формата даты DD-MM-YYYY в XML-регулярном выражении?
- 5. Регулярное выражение для формата даты YYYY-MM-DDThh: mm: ssZ
- 6. Регулярное выражение в формате mm/dd/yyyy
- 7. Регулярное выражение для mm/dd/yyyy hh: mm AM/PM
- 8. tablesorter фильтрация формата даты dd-mm-yyyy
- 9. Изменение формата даты от mm/dd/yyyy
- 10. java.util.Date конвертация формата yyyy-mm-dd в mm-dd-yyyy
- 11. Преобразование формата формата даты с dd/mm/yyyy в yyyy/mm/dd с использованием C
- 12. Дата проверки dd-mm-yyyy или dd/mm/yyyy
- 13. Преобразование формата даты yyyy-mm-dd hh-mm-ss в dd-mm-yyyy
- 14. Преобразование формата даты в datetime MM/dd/yyyy при формировании даты системы dd/MM/yyyy
- 15. Регулярное выражение для формата даты
- 16. Регулярное выражение для mm/dd/yyyy в asp.net
- 17. Формат даты «dd/MM/yyyy» до «yyyy/MM/dd»
- 18. Преобразование даты между DD/MM/YYYY и YYYY-MM-DD?
- 19. Регулярное выражение для формата даты MM/DD/YYYY возвращает ложные результаты
- 20. Конвертировать формат даты yyyy-mm-dd => dd-mm-yyyy
- 21. Изменение формата даты от 'yyyy-mm-dd' до 'yyyy MMM dd' или 'MMM dd, yyyy'
- 22. Сбивание с толку dd/mm/yyyy и mm/dd/yyyy
- 23. Как изменить формат даты с DD/MM/YYYY или MM/DD/YYYY на YYYY-MM-DD?
- 24. изменение формата даты от dd-mm-yyyy до yyyy-mm-dd
- 25. Получение рельсов для принятия европейского формата даты (dd/mm/yyyy)
- 26. Проверка даты dd/mm/yyyy
- 27. Сохранение формата MM/DD/YYYY в строке
- 28. Регулярное выражение для dd/MM/yyy или dd/MM/yyyy hh: mm: ss
- 29. Сетка для отображения формата даты в формате MM-DD-YYYY
- 30. Уточнительная дата выбора даты для формата 'yyyy-mm-dd'
Используйте ответ от http://stackoverflow.com/questions/3386520/parse-date-from-string-in-this-format-dd-mm-yyyy-to-dd-mm-yyyy и сменил косые черты (/) на двойные обратные косые черты (\\\) –
@AlexTaylor Спасибо за быстрый ответ, я ищу регулярный опыт для формата даты выше, можете ли вы мне это рассказать? – Sandy
Вы действительно хотите формат даты с обратной косой чертой? – EJP