![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: 1 Всего: 1 |
Как будет выглядеть регулярное выражение для "любые символы, кроме двух подряд идущих Х (один Х можно)". Пока только '((?!Х{2}).)*' пришло в голову, но чуется, что долго работать будет.
Решение искалось и ранее в теме http://forum.vingrad.ru/topic-139064.html#st_0_view_0, но не нашлось. поправка: приведенное "решение" тоже оказалось неверным. Это сообщение отредактировал(а) whoever - 17.2.2008, 03:49 |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
А по-старинке (вырезать все нехорошие последовательности при помощи replaceAll) - никак?
Если нет, то объясни прямо, ради чего это вообще требуется - может, не регулярками что предложим... -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: 1 Всего: 1 |
Нужно заменить по шаблону:
"тра-та-та {{текст[[XXXXX]]текст}} тра-та-та" - в подобной строке нужно заменить {{текст[[XXXXX]]текст}} на "текст XXXXX текст" (вместо XXX еще и подставить что-то), либо вырезать все между {{ и }}, в зависимостри от ситуации. |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
количество повторяемых символов изменяющееся или постоянное?
повторяется какой то определённый символ, или не известно какой символ будет повторятся? |
|||
|
||||
whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: 1 Всего: 1 |
Символов повторяющихся всегда два (в данном случае это {{, }}, [[ и ]]).
|
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: нет Всего: 259 |
whoever, получается что тебе нужно сначала найти все вхождения {{моя_строка}}, а потом работать уже с вхождениями.
Добавлено через 1 минуту и 2 секунды Вроде ничего сложного. Не пойму зачем искать "все кроме двух подряд" |
|||
|
||||
whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: 1 Всего: 1 |
"Все кроме двух подряд" - это для составления подобного выражения:
{{ все-кроме-двух-подряд-[ две-подряд-[ все-кроме-двух-подряд-] две-подряд-] все-кроме-двух-подряд-} две-подряд-} |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: нет Всего: 259 |
whoever, может попробовать наоборот? ... хотя без отключения жадности все равно не обойтись...
Добавлено через 5 минут и 25 секунд Попробовал накидать на php - вроде оптимальнее через callback функции. Может пригодится.
|
|||
|
||||
whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: 1 Всего: 1 |
smartov, а разве жадность отключать не нужно? Дважды (для фигурных и квадратных скобок) будет захвачена наиболее длинная строка в примере. Нет ли в j2se чего-либо похожего на preg_replace_callback?
На данный момент лучшее найденное решение:
Но действует на последовательность из X любой длины, начиная с 2-х. |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: нет Всего: 259 |
whoever,
Нужно, я отключил. Просто в php это делается глобально - модификатор U (Ungreedy) в конце рег выражения. Прости, я не джавист ![]() ![]() |
|||
|
||||
whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: 1 Всего: 1 |
smartov, спасибо за помощь:)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |