Как найти кластеры согласных с регулярным выражением?

Я хочу найти кластеры согласных с регулярным выражением. Примером кластера является mpl в разделе examples.

Для начала я отфильтровал все гласные и заменил их пробелами. С отфильтрованными гласными примеры составляют x mpl s.

Как я могу отфильтровать x и s?


person Leander    schedule 10.01.2015    source источник
comment
Что вы имеете в виду под сортировкой?   -  person Oliver Charlesworth    schedule 10.01.2015
comment
Каков ваш вклад и ожидаемый результат? Вы пытаетесь сопоставить только согласные?   -  person Avinash Raj    schedule 10.01.2015
comment
Термин кластер согласных не имеет однозначного, четко определенного значения. Вам нужно добавить точное определение того, что вы хотите сопоставить.   -  person Tomalak    schedule 10.01.2015
comment
Как вы заменили гласные пробелами: найдите \b.\b и замените пробелом, чтобы избавиться от всех изолированных букв, оставив вам последовательности не менее двух? Нравится RegEx101?   -  person Abecee    schedule 10.01.2015
comment
хм, ладно, извините за плохое описание. У меня есть лист excel, где у меня около 1200 слов. Из этих слов я должен найти группы согласных. Эти кластеры состоят из 2 или более согласных. Я просто считаю их вручную и записываю количество согласных в каждом кластере. Чтобы было проще, я избавился от гласных (мне не нужно их считать) и теперь я хочу избавиться от ОДИНОЧНЫХ согласных, потому что они мне тоже не нужны. Надеюсь, вы понимаете, что я имею в виду :D   -  person Leander    schedule 10.01.2015
comment
Абеси, это именно то, что я искал! :D Спасибо :)   -  person Leander    schedule 10.01.2015


Ответы (3)


Кажется, вы хотите что-то вроде этого,

(?:(?![aeiou])[a-z]){2,}

(?![aeiou])[a-z] означает выбор любого символа из строчных букв, но не из a или e или i или o или u

ДЕМО

  • (?![aeiou])[a-z] Соответствует строчному согласному

  • (?:(?![aeiou])[a-z]){2,} два или более раз.

person Avinash Raj    schedule 10.01.2015

Поскольку ваше рабочее определение «группы согласных» состоит из двух или более согласных подряд, вы можете просто использовать следующий шаблон (без учета регистра, если вы хотите обрабатывать заглавные согласные):

[bcdfghjklmnpqrstvwxyz]{2,}
  • [bcdfghjklmnpqrstvwxyz] — простой класс символов из белого списка для согласных (т. е. будет соответствовать только согласному)
  • {2,} – два и более подряд

Вы можете протестировать шаблон на паре входных строк в соответствующей скрипте регулярного выражения.

Обратите внимание, поскольку гласные "a, e, я, о, у и иногда y", я включил y в класс символов белого списка для согласных выше.

Вы можете бросить y и использовать...

[bcdfghjklmnpqrstvwxz]{2,}

...если вы хотите безоговорочно рассматривать y как гласную, а не согласную; но правила, когда y является согласной немного сложнее, чем простое регулярное выражение (в основном требуется, чтобы вы сначала определили слоги, а затем местоположение y в них).

person J0e3gan    schedule 10.01.2015

Превращение комментария в ответ…

Когда вы заменили гласные пробелами: найдите \b.\b (или \b\w\b, чтобы лучше ориентироваться) и замените пробелом, чтобы избавиться от всех изолированных букв, оставив вам последовательности не менее двух.

Например, RegEx101.

person Abecee    schedule 10.01.2015