|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
Нужно решить задачу, (см. $text) более элегантно, если это возможно, нежели способом указанном ниже. Можно ли ее решить за "один присест" без циклов. Своих извилин хватило только на это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
На выходе имеем: Поиск количество гласных ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2006, 16:32 |
|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2006, 10:55 |
|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
$vowels = 'у|е|ы|а|о|э|я|и|ю|ё'; $text = 'Поиск слов в которых четное количество гласных букв'; @words = grep { @t = /$vowels/gi; @t*1 ^ 1 } split(/\s+/,$text); ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2006, 17:26 |
|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
Вот моё решение через одно re. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
У автора вопроса не выводятся слова с 0-м числом гласных, а предыдущее решение выглядит круто и загадочно, но иногда выводит слова с нечётным количеством гласных... Также надо учесть, что слово в русском языке это не \w+, т.к. цифр, латинских букв и подчёрков в нём нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2017, 13:53 |
|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
Забыл о словах с дефисом. Нетрудно задать дефис, как особую букву, по бокам которой стоят настоящие буквы, и опять по кирпичикам собрать re для слова, как я делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2017, 10:04 |
|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
Для больших текстов Perl выдаёт сообщение "Complex regular subexpression recursion limit (32766) exceeded at ..." ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2017, 10:52 |
|
(Perl) Поиск слов в которых четное количество гласных букв
|
|||
---|---|---|---|
#18+
Язык : Perl6 Версия : Rakudo version 2017.04.3 built on MoarVM Файл : Чётное-число-гласных-в-слове Кодировка : UTF-8 Код: perl 1. 2. 3.
Среда : Linux; zsh locale : LC_CTYPE="UTF-8" Код: coco 1. 2. 3.
Вывод : Пердыщенко: иойсдуисх ейрце эбу Пояснения : главная фича - в Перл6 новый синтаксис регулярных выражений. Вызов perl6 с ключом -n заставляет программу читать построчно из стандартного устройства ввода. Выражение m:i:g /<[АЕЁИОУЫЭЮЯ]>/ сравнивает строку с шаблоном, используя механизм рег. выражений. <[АЕЁИОУЫЭЮЯ]> - символьный класс ( а просто квадратные скобки [] - это незахватывающая группировка ) :i :g - модификаторы ( i gnore case, g lobal ), то есть, в отличие от Perl5 модификаторы указываются перед шаблоном m - оператор m atch .words - вызов метода words() у скаляра $_ ( то есть, $_ можно не писать ) .say - вызов метода say() у скаляра $_ @() - это синтаксический сахар для выражения @( $/ ), где $/ - это скаляр, содержащий Match-objec t, a @ перед скобками () заставляет $/ вернуть все совпадения одним плоским списком; %2 - остаток от деления на 2 - заставит этот список в скалярном контексте вернуть число членов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2017, 14:59 |
|
|
start [/forum/topic.php?fid=23&msg=33716998&tid=1460603]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 164ms |
0 / 0 |