Вы почти правы, вместо этого используйте
[\d]{1,2}\/[\d]{1,2}\/[\d]{2}\b
(добавьте \b
в конце своего регулярного выражения).
\b
обозначает границу слова. Поместив его в конец, предотвратите сопоставление любого символа после него.
Вы также можете поместить его как в начало, так и в конец вашего регулярного выражения. Например:
\b[\d]{1,2}/[\d]{1,2}/[\d]{2}\b
Это позволит убедиться, что он не соответствует строкам с посторонними символами спереди и сзади (например, "09/02/2018"
, "1109/02/20"
и т. Д.)
Нет действительно универсального структурированного способа сделать это. У меня были бы большое поле для "Полного имени" и другое поле для "Отображаемого имени". Оба unicode.
Например, в испаноязычных странах, IIRC, у людей обычно есть ЧЕТЫРЕ имени. Два имени и две фамилии (один от родительского элемента, один от родительского элемента). У арабов по существу еще есть связанный список имен, они принимают решение пойти (Такой-то, сын такого-то, сын такого-то...). Восточноазиатские страны имеют тенденцию помещать имена в последний раз, пока европейцы помещают имена сначала.
В целом имя является человекочитаемым идентификатором человека. Для данного человека необходимо будет сохранить одно название каждого варианта использования такого идентификатора. Вам будет нужно имя для отображения как часть почтового адреса; Вам, возможно, понадобится для использования в качестве "псевдонима"; Вам, возможно, понадобится для использования в открытии буквы человеку; Вы, возможно, иногда должны включать заголовки и почести человека, иногда нет.
В любом из этих случаев, что Вы хотите отобразить, единственная строка. Вы можете или не мочь избегать дублирования усилия путем хранения компонентов этих строк и откладывания их вместе позже. Но в целом, и с точки зрения национальной культуры и с точки зрения профессиональной культуры, можно быть более обеспечены просто хранение полных строк.
То же, BTW, в основном происходит для почтовых адресов, за исключением того, что существуют международные стандарты, которые разрешают почтовым полномочиям одной страны отправлять почту людям в другой стране.
Если Вы действительно интересуетесь движением глобального через все культуры, смотрите на СПЕЦИФИКАЦИЮ XML HR Человека. Имя и фамилия просто не сокращают его, когда Вы перемещаетесь за пределами Запада. Восточные стандарты FamilyName GivenName собьют Вас с толку при определении FullName. Кроме того, у Вас есть все потенциальные сложности альтернативных сценариев (не, все используют Латинский алфавит, y'know), префиксы и суффиксы (NN Сэр, van der Waals).
Это - стандарт, предназначенный для передачи и интеграции, а не устройства хранения данных, но не позволяйте синтаксису XML-схемы испугать Вас. Я не реализовал бы каждый аспект его, но это - превосходный поставщик угловых случаев, которые не сразу очевидны, и которые можно затем проигнорировать сознательно. В частности, проверьте примеры в конце!
И ради бога, не создавайте американское приложение, которое принимает среднюю начальную букву для всех!