2016-02-03 3 views
-1

Я пытаюсь сделать регулярное выражение для проверки общих имен Сингапура на Android.Regex validation for Singapore names

Мой текущий регулярное выражение ^[A-Za-z\s]{1,}[\.]{0,1}[A-Za-z\s]{0,}$

Он может принимать любое значение, которое имеет пробелы между ними, но принимать слишком много других значений, которые делают его непригодным.

Регулярное выражение должно принять:

Benedict Tan 
James Watson 
Richard Lim Jun Qi 
Tan Ho Wen 
Eng Pin Wee 

Регулярное выражение должно отклонить:

Ngee Ann Polytechnic 
Institute of Singapore 
Singapore University of Technology and Design 
ST Electronics 
Green View Secondary School 
Anderson Primary School 
NUS 
Ministry of Education 
Singapore Press Holdings Pte Ltd 

Это сложный один, и я не могу понять, как отличить их.

---------------------------------------------- ---------РЕДАКТИРОВАТЬ---------------------------------------- -

Одно из предложений состоит в том, чтобы составить список имен, отличных от имени, таких как «Институт, Школа, Университет, Технология, Дизайн, Компания» и отвергнуть их.

Как можно создать регулярное выражение на основе этого? В настоящее время я тестирую его на регулярном выражении и все еще работаю над ним.

+1

Не удалось создать словарь запрещенных слов. Решение этой проблемы не существует. Даже с таким словарем, вероятно, будут случаи, которые нельзя обрабатывать автоматически, и вы будете часто обновлять словарь. –

+0

@ Jim GarrisonЭто то, что я думал .. Угадайте, что нет решения. –

+0

@JimGarrison Предположим, я хочу сделать это более точным, как насчет принятия имен, которые имеют от 2 до 4 слов. И отклонять имена, которые имеют только 1 слово или более 4 слов? Я знаю, что он все равно примет «Ngee Ann Polytechnic и т. Д.» –

ответ

0

Не удалось создать словарь запрещенных слов, решение этой проблемы не существует. Даже с таким словарем, вероятно, будут случаи, которые нельзя обрабатывать автоматически, и вы будете часто обновлять словарь.

Только вы знаете, что приемлемо. Если бы это был я, я бы составил список «non-name words», такой как Polytechnic, Institute, Technology, Design и т. Д. И отклонил имена, содержащие одно или несколько таких слов. Просто будьте осторожны, чтобы НЕ включать слова, которые могли бы быть частью имени человека.

Однако, (от @ErwinBolwidt): Вы не очень добры к начальной школе Андерсона, которая не сможет ввести его имя в ваше приложение. Честно говоря, имена Сингапура могут быть чем угодно, так как здесь живут люди со всего мира. И будет много совпадений между именами людей и названиями компаний.

Есть много людей с фамилией «Школа». Вот некоторая информация для вашей справки: names.mongabay.com/data/sa/SCHOOL.html. Примечание. Я живу в Сингапуре, и моя фамилия, скорее всего, не будет в любом положительном списке действительных фамилий, которые вы использовали бы. (Я должен признать, что было бы жестоко дать вашему сыну второе имя «Первичный», если ваша фамилия - школа. Но, вероятно, не является незаконной.)

Вот история о mr Null and what bad name checks can to do somebody. Мой совет: не проверяйте правильность имени. Сорт слишком велик, и нет правил, которыми вы можете следовать.