Регулярное выражение для поиска Gadaffi - PullRequest
361 голосов
/ 20 марта 2011

Я пытаюсь найти слово Gadaffi. Какое регулярное выражение лучше всего искать?

Моя лучшая попытка на данный момент:

\b[KG]h?add?af?fi$\b

Но мне все еще не хватает некоторых журналов. Есть предложения?

Обновление: я нашел довольно обширный список здесь: http://blogs.abcnews.com/theworldnewser/2009/09/how-many-different-ways-can-you-spell-gaddafi.html

Ответ ниже соответствует всем 30 вариантам:

Gadaffi
Gadafi
Gadafy
Gaddafi
Gaddafy
Gaddhafi
Gadhafi
Gathafi
Ghadaffi
Ghadafi
Ghaddafi
Ghaddafy
Gheddafi
Kadaffi
Kadafi
Kaddafi
Kadhafi
Kazzafi
Khadaffy
Khadafy
Khaddafi
Qadafi
Qaddafi
Qadhafi
Qadhdhafi
Qadthafi
Qathafi
Quathafi
Qudhafi
Kad'afi

Ответы [ 15 ]

1 голос
/ 18 июня 2014

Я знаю, что это старый вопрос, но ...

Ни один из этих двух регулярных выражений не является самым красивым, но они оптимизированы и оба соответствуют ALL вариациям в оригинальном посте..

"Маленькая красавица" # 1

(?:G(?:a(?:d(?:d(?:af[iy]|hafi)|af(?:f?i|y)|hafi)|thafi)|h(?:ad(?:daf[iy]|af?fi)|eddafi))|K(?:a(?:d(?:['dh]a|af?)|zza)fi|had(?:af?fy|dafi))|Q(?:a(?:d(?:(?:(?:hd)?|t)h|d)?|th)|u(?:at|d)h)afi)

"Маленькая красавица" # 2

(?:(?:Gh|[GK])adaff|(?:(?:Gh|[GKQ])ad|(?:Ghe|(?:[GK]h|[GKQ])a)dd|(?:Gadd|(?:[GKQ]a|Q(?:adh|u))d|(?:Qad|(?:Qu|[GQ])a)t)h|Ka(?:zz|d'))af)i|(?:Khadaff|(?:(?:Kh|G)ad|Gh?add)af)y

Отдыхв мире, Муаммар.

1 голос
/ 04 мая 2011

Почему бы не сделать смешанный подход?Что-то между списком всех возможностей и сложным регулярным выражением, которое слишком сильно совпадает.

Регулярное выражение - это сопоставление с образцом, и я не вижу шаблон для всех вариантов в списке.Попытка сделать это также найдет такие вещи, как «Gazzafy» или «Quud'haffi», которые, скорее всего, не являются используемым вариантом и определенно отсутствуют в списке.

Но я вижу шаблоны для некоторых вариантови в итоге я получил следующее:

\b(?:Gheddafi|Gathafi|Kazzafi|Kad'afi|Qadhdhafi|Qadthafi|Qudhafi|Qu?athafi|[KG]h?add?h?aff?[iy]|Qad[dh]?afi)\b

Вначале я перечисляю те, где я не вижу паттерн, а затем несколько вариантов, где есть паттерны.

Смотрите здесь на www.rubular.com

0 голосов
/ 28 декабря 2018

[GQK] [ах] + [dtez] + \ '[adhz] + F {1,2}? (Я | у)

По частям:

  • [GQK]
  • [ах] +
  • [dtez] +
  • \ '
  • [adhz] +
  • е {1,2} (я | у)

Примечание: только что выучил регулярные выражения и хотел дать ему шанс. Исправим небольшую ошибку позже

0 голосов
/ 24 августа 2011

Что еще начинается с Q, G или K, имеет d, z или t в середине и заканчивается на "fi", которую люди на самом деле ищут?

/\b[GQK].+[dzt].+fi\b/i

Готово.

>>> print re.search(a, "Gadasadasfiasdas") != None
False
>>> print re.search(a, "Gadasadasfi") != None
True
>>> print re.search(a, "Qa'dafi") != None
True

Интересно, что меня опускают. Может ли кто-нибудь оставить несколько ложных срабатываний в комментариях?

0 голосов
/ 21 марта 2011

Просто дополнение: вы должны добавить «Gheddafi» в качестве альтернативного написания. Таким образом, RE должно быть

\b[KG]h?[ae]dd?af?fi$\b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...