Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550

REGEXP. Часть слова после первой гласной пропуская пере

05.08.2010, 02:09. Показов 1901. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно разделить слово на 2 части - часть до первой гласной (включительно) и после. Появилась необходимость пропускать некоторые части слова и только после них уже искать первую гласную. Сделал так:

RVRE это
/^(пере)*(.*?[аеёиоуыэюя])(.*)$/u
PHP
1
2
3
4
if (!preg_match(RVRE, $word, $word_parts) ) return;
self::$RV = array_pop($word_parts);
array_shift($word_parts);
$start = implode('', $word_parts);
$start - это первая часть, содержащая пере (если есть) и всю часть слова после него до первой гласной (включительно)
self::$RV это вторая часть

Я правильно сделал?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2010, 02:09
Ответы с готовыми решениями:

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

Отсортировать слова в данной строке в порядке, обратном алфавитному (qsort), и посчитать число слов с первой гласной
Здравствуйте! Нужно написать программу, которая сортирует слова в данной строке в порядке, обратном алфавитному, и считает кол-во слов с...

RegExp, для поиска всех данных после ключевого слова
Мне нужно регулярное выражение, которое будет доставать все \d+:\d+:\d+;\s\d+\.\d+; т.е. те что в тексте под спойлером выделены жирным,...

5
 Аватар для nubo
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
05.08.2010, 09:03
По моему так было бы почище:
PHP
1
2
3
if (!preg_match('/^(пере*.*?[аеёиоуыэюя])(.*)$/u', $word, $word_parts) ) return;
self::$RV = $word_parts[2];
$start = $word_parts[1];
1
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
05.08.2010, 10:28
insideone, используй strpos, substr.
PHP
1
2
3
4
5
6
7
8
$text="HI! How are you? a sdfs";
$start=0;
while (strpos($text,"a",$start) or substr($text,$start,1)=="a") {
$place=strpos($text,"a",$start);
$leftpart=substr($text,0,$place+1);
$rightpart=substr($text,$place+1,strlen($text)-strlen($leftpart));
$start=$place+1;
}
Вот тебе и текст, поделённый на 2 части. В цикле ищется буква "а", аналогично можно сделать и со всеми гласными.
1
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
05.08.2010, 16:20  [ТС]
Hagrael, что интересно - у меня был скрипт который работал чисто на регулярках и чисто на strpos и substr. Я был очень удивлен когда обнаружил что разница в скорости работы где то в 5 раз в пользу регулярок ) А если тут ещё и по всем гласным циклом искать будет жуть)

nubo, хм. для слов которые не содержат "пере" preg_match выдает false. А нужно все равно находить часть слова после первой гласной и до неё
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
05.08.2010, 16:30
Цитата Сообщение от nubo Посмотреть сообщение
/^(пере*.*?[аеёиоуыэюя])(.*)$/u
PHP
1
'/^((?:пере)*.*?[аеёиоуыэюя])(.*)$/u'
1
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
05.08.2010, 16:43  [ТС]
Vovan-VE, Работает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2010, 16:43
Помогаю со студенческими работами здесь

Для заданного текста получить две группы слов: к первой отнести слова, которые начинаются с гласной буквы, а ко второй – с согласной буквы
Для заданного текста получить две группы слов: к первой отнести слова, которые начинаются с гласной буквы, а ко второй – с согласной буквы

Распечатать ту часть текста, которая расположена к первой точке и после второй точки
дан текст S, в котором есть хотя бы одна точка. Распечатать ту часть текста, которая расположена к первой точке и после второй точки.:cry:

Найти слова, начинающиеся с гласной буквы, вывести на экран монитора искомые слова и их количество
Здравствуйте! Помогите пожалуйста написать программу на СИ:Дан массив строк размером N×M (N=5, M=80). Найти сло-ва, начинающиеся с...

После первой буквы каждого слова вставить символ “-”
После первой буквы каждого слова вставить символ “-”. Нужно в С++

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru