Помогите с регуляркой

martens

Client
Регистрация
27.07.2015
Сообщения
97
Благодарностей
3
Баллы
8
1) Текст:
euyv334444h ### 3yf7y3333gd ### u46gfbhe ### jufjjn84urfs

Какой регуляркой из этого текста взять последнюю "jufjjn84urfs" ?
- Текст после последней " ### "

2) Текст:
"ergeg...4egerge2352..."

Какой регуляркой взять "ergeg...4egerge2352" ?
Всё, кроме последних трёх точек.
 
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 409
Баллы
113
С регуляркой не подскажу.
Но можно решить следующим образом - забросить в список по разделителю (### или ...).
Потом подсчитать количество строк в списке.
Дальше получить последний элемент списка (взять строку по номеру который узнали на предыдущем шаге).

В втором случае точно также разбить по разделителю.
После чего объединить элементы списка с разделителем ... - таким образом последние ... уже не попадут в переменную.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
1.
Код:
\w+(?=$)
2.
Код:
^.*(?=\.{3}$)
 
  • Спасибо
Реакции: martens

martens

Client
Регистрация
27.07.2015
Сообщения
97
Благодарностей
3
Баллы
8
1.
Код:
\w+(?=$)
2.
Код:
^.*(?=\.{3}$)
Спасибо, Второе работает отлично,

А "\w+(?=$)" получается парсит текст после последнего пробела.
Мне нужно спарсить текст именно после последней комбинации " ### "
Пример-Текст:
er7eer6 4g4 ### uewrhf 6g 6tdf ### f873h g 67gt4 ### 84yu ## ggf46 6y
"84yu ## ggf46 6y" вот это какой-нибудь регуляркой можно вытащить?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Код:
(?<=^|(\#{3}\s)).*?(?=(\s\#{3})|$)
Взять последнее совпадение
 
  • Спасибо
Реакции: martens

martens

Client
Регистрация
27.07.2015
Сообщения
97
Благодарностей
3
Баллы
8

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)