![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
alyam |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
есть переменная, примерно выглядит так:
$str="слово1 слово2 слово3" слов может быть много разных нужно оставить только первых два. делаю так: $str=~/^((.*?)\s(.*?)\s)/ дальше работаю с переменной $1 а есть ли способ пооптимальней? |
|||
|
||||
amg |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Нежадный мультипликатор (который со знаком вопроса) - это неэффективно. Лучше так:
Если же нужно изменить $str, оставив только первые два слова, то
Это сообщение отредактировал(а) amg - 23.8.2007, 09:21 |
||||
|
|||||
Nab |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
alyam, не понятен вопрос, что нужно удалить а что оставить...
Дайте пример с большим количеством слов. Добавлено через 8 минут и 25 секунд
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
nitr |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
используя ответ, и как я понял вопрос, то
|
||||
|
|||||
Nab |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Хехе, nitr, а на двух словах не сработает, а если больше, то захватит минимум один пробел в конце... а оно надо?
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Хехе, чтобы пробелы между 2-м и 3-м словами не захватывались, нужен третий вариант
|
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
а это уже иное
![]() человек пускай сначала все уточнит, а то "пальцем в небо" Добавлено через 1 минуту и 46 секунд nitr, amg подправил ;) Добавлено через 3 минуты и 21 секунду или жестко:
;) |
|||
|
||||
alyam |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
а если одно слово? слов может быть от 1 до infinity
захватывать пробел в конце не нужно. я потом объединяю эти слова через точку join('.',split(/ /,$str)) может можно сразу в split задать размер массива? Это сообщение отредактировал(а) alyam - 23.8.2007, 13:53 |
|||
|
||||
amg |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Конечно можно:
Но бы сделал так, если нужно всего два слова:
Это сообщение отредактировал(а) amg - 23.8.2007, 15:10 |
||||||
|
|||||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
Вот именно!! Истину говоришь ;) alyam, вы вообще читаете ответы? ![]() ![]() И еще раз!!! Если будете так задавать вопросы, вам вообще никто не ответит... |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Ну уж прямо так... Я, например, частенько отвечаю и на не очень внятные или неинтересные вопросы, просто стараюсь сделать это так, чтобы вызвать ответный поучительный флейм со стороны кого-нибудь типа тебя или других знатоков.
|
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
amg, это понятно, но у него конкретная задачка, а твои "иные", больше похожи на "перл-гольф"/JAPH
![]() ![]() Я уже описал, как данный топик называется - "пальцем в небо". Т.к. раздуваем простейшую регулярку... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |