Бесплатно напишу регулярное выражение. Часть 2.

Min-Z-Drav

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

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
Нужна регулярка с запретом на текст в котором присутствует слово UNAUTHENTICATED

C#:
{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential.
    "status": "UNAUTHENTICATED"
  }
}
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
179
Баллы
43
Нужна регулярка с запретом на текст в котором присутствует слово UNAUTHENTICATED

C#:
{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential.
    "status": "UNAUTHENTICATED"
  }
}
json используйте, а потом поиск нужного значения или его отсутствие и всё
 
  • Спасибо
Реакции: Min-Z-Drav

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
json используйте, а потом поиск нужного значения или его отсутствие и всё
в json в это время лежит инфа, которую не отправил запрос по причине, отвалившегося токена
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 232
Благодарностей
572
Баллы
113
  • Спасибо
Реакции: bizzon

inilim

Client
Регистрация
16.09.2017
Сообщения
446
Благодарностей
170
Баллы
43
Помогите с регуляркой. Нужно получить значение между кавычками, при этом все варианты значений между кавычками.
Код:
aw'dw'dwad'wd'daw'dd'wad'рераdwa'
Ожидаемый результат:
Код:
dw'dwad'wd'daw'dd'wad'рераdwa
dw'dwad'wd'daw'dd'wad
dw'dwad'wd'daw'dd
dw'dwad'wd'daw
dw'dwad'wd
dw'dwad
dw
dwad'wd'daw'dd'wad'рераdwa
dwad'wd'daw'dd'wad
dwad'wd'daw'dd
dwad'wd'daw
dwad'wd
dwad
wd'daw'dd'wad
wd'daw'dd
wd'daw
wd
daw'dd'wad'рераdwa
daw'dd'wad
daw'dd
daw
и т.д.
в данной строке вариаций 20-30.
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
  • Спасибо
Реакции: Alexmd

inilim

Client
Регистрация
16.09.2017
Сообщения
446
Благодарностей
170
Баллы
43
@sergodjan66 не, не то, это берет только то что между кавычками. На примере есть результат того что я имею ввиду.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
@sergodjan66 не, не то, это берет только то что между кавычками. На примере есть результат того что я имею ввиду.
то, то.. просто одной только регуляркой тут не обойдешься.
C#:
string s = "aw'dw'dwad'wd'daw'dd'wad'рераdwa'";
var matches = Regex.Matches(s, @"(?<=').*?(?=')");
List<string> list = new List<string>();
List<string> res = new List<string>();
for(int i = 0; i < matches.Count; i++){
    list.Add(matches[i].Value);
    res.Add(matches[i].Value);
    for(int k = i + 1; k < matches.Count;k++){
        list.Add(matches[k].Value);
        res.Add(string.Join(" ", list));
        for(int j = k + 1; j < matches.Count; j++){
            list.Add(matches[j].Value);
            res.Add(string.Join(" ", list));
        }
        list.Clear();
        break;
    }
}
project.Lists["Список"].AddRange(res);
 
  • Спасибо
Реакции: inilim и Sergodjan

ceby

Client
Регистрация
13.12.2021
Сообщения
20
Благодарностей
3
Баллы
3
Добрый день. Можно ли задать регулярное выражение на диапазон дат и как это лучше делать? Диапазон нужных дат: c 21/01/2022 по 04/02/2022. Если хоть одно совпадение найдется на странице, то записать его в переменную. Спасибо
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 785
Благодарностей
1 949
Баллы
113
Добрый день. Можно ли задать регулярное выражение на диапазон дат и как это лучше делать? Диапазон нужных дат: c 21/01/2022 по 04/02/2022. Если хоть одно совпадение найдется на странице, то записать его в переменную. Спасибо
Обычно на странице можно сделать сортировку по дате и тогда просто сравнивать даты, а по регурярке такое лучше не делать.
 

ceby

Client
Регистрация
13.12.2021
Сообщения
20
Благодарностей
3
Баллы
3
Добавил настройки. Подскажите, так будет работать?
 

Вложения

igoreff

Client
Регистрация
24.02.2011
Сообщения
189
Благодарностей
24
Баллы
18
Подскажите как парсить емайлы если вместо @ стоит [at]
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
  • Спасибо
Реакции: igoreff

igoreff

Client
Регистрация
24.02.2011
Сообщения
189
Благодарностей
24
Баллы
18
Спасибо, сработало
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 039
Благодарностей
6 470
Баллы
113
Подскажите пожалуйста, есть интересная задача, первый раз с ней сталкиваюсь.

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

C#:
<div> - основной
<div> - не нужен
  <div> - не нужен
текст - нужен
не могу решить задачку, а с вырезаниями не хочется связываться

ps \ надеюсь понятно объяснил)
 

konlaz

Новичок
Регистрация
11.02.2022
Сообщения
17
Благодарностей
2
Баллы
3
Здравствуйте, подскажите новичку, как получить значение только цифры без пробелов, с выделенной красным цветом строчки? Это страница на Озон. Уже третий раз переделываю шаблон. Классы скорее всего меняются через скрипт, их прописывать бесполезно.
Нужен результат: 6361 или такой какой будет на других страницах.
Взята для примера страница: ozon.ru/product/405372110
Спасибо.
P.S. Готов оплатить консультацию и рабочий пример.

<div slot="content" class="lp7 p8l">
<div class="pl2 pl8">
<span class="p2l l3p">1&nbsp;225&nbsp;₽</span>
<span class="p3l">× 6 мес<div class="ui-j9 j8o lp4">
<div class="ui-b1"><button tabindex="0" type="button" class="ui-b3">
<span class="ui-b4 ui-c5 ui-e9" style="border-radius:6px;"><svg xmlns="***********************" width="16" height="16" class="ui-e7" style="color: var(--ozBGQuaternary);">
<path fill="currentColor" d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16ZM8 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1 3v4a1 1 0 1 1-2 0V8a1 1 0 0 1 2 0Z"></path></svg>
<span class="ui-f1"></span>
</span></button></div> </div></span></div>
<div class="l4p lp6 pl7"><div>
<span class="lp5 l5p"><span>6&thinsp;361&thinsp;₽</span>&nbsp;</span>
<span class="p5l">9&thinsp;785&thinsp;₽</span>
</div></div> <!----> <!----></div>
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
как получить значение только цифры без пробелов, с выделенной красным цветом строчки? Это страница на Озон. Уже третий раз переделываю шаблон. Классы скорее всего меняются через скрипт, их прописывать бесполезно.
Нужен результат: 6361 или такой какой будет на других страницах.
Взята для примера страница: ozon.ru/product/405372110
Такой вариант например, с кубиком "Парсинг данных", с помощью Xpath или CSS Selector.
Приложил пример шаблона.

92174
 

Вложения

konlaz

Новичок
Регистрация
11.02.2022
Сообщения
17
Благодарностей
2
Баллы
3
Такой вариант например, с кубиком "Парсинг данных", с помощью Xpath или CSS Selector.
Приложил пример шаблона.

Посмотреть вложение 92174
Нет это не на долго, поэтому я и переделывал шаблон, так как и кол-во div может поменяться и классы..., раньше у них класс "price" был, недавно поменяли...
Они делают защиту от парсеров.... и смена классов происходит через скрипты и код стараются спрятать
...
Убрал один DIV и всё результат 0
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Здравствуйте, подскажите новичку, как получить значение только цифры без пробелов, с выделенной красным цветом строчки? Это страница на Озон. Уже третий раз переделываю шаблон. Классы скорее всего меняются через скрипт, их прописывать бесполезно.
Нужен результат: 6361 или такой какой будет на других страницах.
Взята для примера страница: ozon.ru/product/405372110
Спасибо.
P.S. Готов оплатить консультацию и рабочий пример.

<div slot="content" class="lp7 p8l">
<div class="pl2 pl8">
<span class="p2l l3p">1&nbsp;225&nbsp;₽</span>
<span class="p3l">× 6 мес<div class="ui-j9 j8o lp4">
<div class="ui-b1"><button tabindex="0" type="button" class="ui-b3">
<span class="ui-b4 ui-c5 ui-e9" style="border-radius:6px;"><svg xmlns="***********************" width="16" height="16" class="ui-e7" style="color: var(--ozBGQuaternary);">
<path fill="currentColor" d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16ZM8 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1 3v4a1 1 0 1 1-2 0V8a1 1 0 0 1 2 0Z"></path></svg>
<span class="ui-f1"></span>
</span></button></div> </div></span></div>
<div class="l4p lp6 pl7"><div>
<span class="lp5 l5p"><span>6&thinsp;361&thinsp;₽</span>&nbsp;</span>
<span class="p5l">9&thinsp;785&thinsp;₽</span>
</div></div> <!----> <!----></div>
(?<=<span>)[^<>]+₽(?=</span>)
 
  • Спасибо
Реакции: Sergodjan

patryxa

Client
Регистрация
29.10.2021
Сообщения
24
Благодарностей
8
Баллы
3
плз хелп!
пытаюсь спарсить регуляркой инфу из постов в тг, выходит неоч...
суть в том что пост может иметь несколько видов
<a class="tgme_widget_message_photo_wrap 5240365163960449638 1220117594_456243814" href="https://t.me/aliexprs/20121" style="width:800px;background-image:url('https://cdn4.telegram-cdn.org/file/fdTLppeoHWyo80UuS9YGv75GQ2KymwuMkTfyW3ZC6_o-TRxO0wYT6B1fUwv8qcWJfuD3X3hckMinuRWt_8Rc9chvQHQ5Tlk7GdMUVnzHJgijea9BcfB3RgISMYHGotyzGicGT8KsMAGjmbT-muoqy6RoICmrd5ySZDab5U7ZOAipdYWBf-kvA-Ce1H93-5tJO8KIDXMDMeDoWcIIRPg1Fxv4vienxumDsKHtKD_uvQVvqNNGowKrSRwklHgALKbf96sEnThLDmlGoEzQMdmGp02h9Stnhag5ESI1pLfpyopG6OQgMygJ_tW-oyISaFJGpj9gDoDwpXdUbAisQkvMlQ.jpg')">
<div class="tgme_widget_message_photo" style="padding-top:50%"></div>
</a>
<div class="tgme_widget_message_text js-message_text" dir="auto">Умный ошейник для животных позволяет следить за питомцем: смотреть пройденное расстояние, время, затраченное на сон и активность. Кроме этого с помощью ошейника можно искать питомца, если он находится на расстоянии 10-15 м.<br><br>Аксессуар защищён от воды, на корпус можно нанести имя животного. В комплекте есть инструкция. <br><br>Цена: 993 руб.<br><br><a href="https://lh.su/1c1m" target="_blank" rel="noopener">https://lh.su/1c1m</a></div>

<div class="tgme_widget_message_footer js-message_footer">
<a class="tgme_widget_message_photo_wrap 5240242478219640038 1220089029_456244454" href="https://t.me/aliexprs/20117" style="width:800px;background-image:url('https://cdn4.telegram-cdn.org/file/UZ5OVirhKBrR6p8oHH7dnOaNn4lJCUJPCf5DKSIF5Vr3UAZwyQoR6Y-7LKezpHMaEcpShcrDdZJ83DBeAESQ3zJDEoI9KMtpis9JHxM6xoKPBjIEHYvf1ha8cxpy850kxkRt9rtPwQbGEtHslTn1yZaCs9tatSP5HOaj3UsTabzbdL5b9to9lhWtkCYQ1YS-_TqfM_9XFE-PrIGJM0V5PXE_BH7HKz3u8JlorV1tWPPhwCOf6w93UErqq4Mt_3oZH3BwS5zQXsowCDwgN_guxDWvta1zr8zjp5EVXsHhNZ0XJ2YEcnZYwMR-Q__inq_cUbRGcani0-pu3U9wCXCpPw.jpg')">
<div class="tgme_widget_message_photo" style="padding-top:50%"></div>
</a>
<div class="tgme_widget_message_text js-message_text" dir="auto">Устройство поддерживает быструю зарядку по стандартам QC 3.0 и PD. Для подпитки гаджетов есть порты USB-A и Type-C. Предусмотрена защита от перегрева, короткого замыкания и прочих неприятностей. В наличии два цвета.<br><br>Цена: 339 руб.<br><br><a href="https://lh.su/1c0l" target="_blank" rel="noopener">https://lh.su/1c0l</a></div>

<div class="tgme_widget_message_footer js-message_footer">
<a class="tgme_widget_message_photo_wrap 5240242478219640029 1220089029_456244445" href="https://t.me/aliexprs/20110" style="width:800px;background-image:url('https://cdn4.telegram-cdn.org/file/QEtEmSP5--h8ffFCZNqnq6VLphWamDPZZROBiUpAxlWv8cOiCGyjr4IgK6yfItTkSu9dSENFab6h5lFTxArQQJXnctfzEC0k4k4B8n7GqUD0ByuwBOZ-WVCJzf27lFsGY7rKsYmL8WEpSQO60ybu5hXmAycZgqC-ToWPSbOOPSJg8ioaDw-Bserm_uVvc5BSZLVhasFks9RXcB2CtQnq80tE_rNTwALQsCLmom-lcIxy4_1UgRCS9_5rEuGOIGM-M3Y-_spL10J83GgbCsR4HbMzQbSdpb5OOM6CxIb79LFxoY1yL9aUfxnR0h_bPKaDZ8qFPXxfYBnrhvsI3Z03HA.jpg')">
<div class="tgme_widget_message_photo" style="padding-top:50%"></div>
</a>
<div class="tgme_widget_message_text js-message_text" dir="auto"><i class="emoji" style="background-image:url('//telegram.org/img/emoji/40/E29AA1.png')"><b>⚡</b></i> Новинка от realmе: планшет Pad X с Hi-Res Audio<br><br>Модель получила тонкий металлический корпус (7,1 мм) и 11-дюймовый 2K-дисплей с яркостью до 450 нит и технологией DC dimming для снижения мерцания. Внутри – процессор Qualcomm Snapdragon 695 (6 нм), 4 или 6 ГБ ОЗУ и 64 или 128 ГБ встроенной памяти. Есть слот для карточек microSD объёмом до 512 ГБ. <br><br>Основная камера имеет разрешение 13 Мп, фронтальная – 8 Мп (105°). Также есть четыре динамика, поддержка Dolby Atmos и сертификация Hi-Res Audio. Предусмотрена возможность подключения фирменной клавиатуры. <br><br>Автономную работу обеспечивает батарейка на 8 340 мА·ч с зарядкой на 33 Вт через порт USB Type-C. По части коммуникаций заявлены, Wi-Fi 802.11ac (2,4 ГГц/5 ГГц), Bluetooth 5.0, GPS / ГЛОНАСС. Работает планшет на базе Android 11 с пользовательским интерфейсом Realme 3.0.<br><br>Цена: 18 351 руб.<br><br><a href="https://lh.su/1c0n" target="_blank" rel="noopener">https://lh.su/1c0n</a></div>

<div class="tgme_widget_message_footer js-message_footer">

(?<=<a\ class="tgme_widget_message_photo_wrap)[\w\W]*?(https://t\.me/aliexprs/.*?(?="))[\w\W]*?(https://cdn4.telegram-cdn.org/.*?(?='))[\w\W]*?((?<=<div class="tgme_widget_message_text js-message_text.*?>).*?(?=<br>))[\w\W]*?((?<=<br>)[\s\S]*(?=<br>))[\w\W]*?((?<=href=").*(?=" target=.*? ))

в постах могут быть смайлы или несколько абзацев как в 3 варианте
и вопрос как сделать так чтоб костылей было меньше и косяков
на выходе получаю результат с кучей ненужного(потом костылями убираю)
Без имени.png
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
в постах могут быть смайлы или несколько абзацев как в 3 варианте
и вопрос как сделать так чтоб костылей было меньше и косяков
на выходе получаю результат с кучей ненужного(потом костылями убираю)
То что попадает в 3 и 4 группу - очищать от html-тегов с помощью кубика "Обработка текста - Замена (regex)" по регулярке <.*?> заменить на пустоту.
 
  • Спасибо
Реакции: patryxa

patryxa

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

QWER-MAS

Client
Регистрация
14.05.2015
Сообщения
99
Благодарностей
10
Баллы
18
Помогите пожалуйста.



Есть такой список:



https://tester.com/uploads/2020/08/kot-mckee-and-her-immediate-family.jpg

https://tester.com/uploads/2020/08/kot-mckee-and-her-immediate-family-248x300.jpg

https://tester.com/uploads/2020/08/kot-mckee-and-her-immediate-family-277x335.jpg

https://tester.com/uploads/2020/08/kot-mckee-and-her-immediate-family-287x347.jpg

https://tester.com/uploads/2020/08/kot-mckee-and-her-immediate-family-431x520.jpg

https://tester.com/uploads/2020/08/kot-mckee-and-her-immediate-family-530x640.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-1024x805.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-300x236.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-768x604.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-735x578.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-335x263.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-347x273.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-520x409.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-640x503.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-960x755.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement-1080x849.jpg

https://tester.com/uploads/2019/11/kot-mckee-shares-mysterious-meme-in-wake-of-re-engagement.jpg

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-290x300.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-735x761.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-324x335.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-335x347.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-502x520.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-618x640.png

https://tester.com/uploads/2021/01/kot-mckee-and-husband-josh-742x768.png

https://tester.com/uploads/2021/06/kot-mckee-as-an-og.png

https://tester.com/uploads/2021/06/kot-mckee-as-an-og-300x255.png

https://tester.com/uploads/2021/06/kot-mckee-as-an-og-335x285.png

https://tester.com/uploads/2021/06/kot-mckee-as-an-og-347x295.png

https://tester.com/uploads/2021/06/kot-mckee-as-an-og-520x442.png

https://tester.com/uploads/2020/07/kot-josh-kids-949x1024.png

https://tester.com/uploads/2020/07/kot-josh-kids-278x300.png

https://tester.com/uploads/2020/07/kot-josh-kids-768x829.png

https://tester.com/uploads/2020/07/kot-josh-kids-735x793.png

https://tester.com/uploads/2020/07/kot-josh-kids-310x335.png

https://tester.com/uploads/2020/07/kot-josh-kids-321x347.png

https://tester.com/uploads/2020/07/kot-josh-kids-482x520.png

https://tester.com/uploads/2020/07/kot-josh-kids-593x640.png

https://tester.com/uploads/2020/07/kot-josh-kids-711x768.png

https://tester.com/uploads/2020/07/kot-josh-kids-889x960.png

https://tester.com/uploads/2020/07/kot-josh-kids-1000x1080.png

https://tester.com/uploads/2020/07/kot-josh-kids.png



Из этого списка нужно выдернуть только эти строки:



 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
  • Спасибо
Реакции: QWER-MAS

Grindaize

Новичок
Регистрация
17.03.2023
Сообщения
14
Благодарностей
4
Баллы
3
Если тема еще жива, то прошу подсказать как получить раширение файла?
D:\zen\___MY_FILLER\set\img\2еzeVdеVеKT-right-left--right-е.н.-Mohт--H.E.-Saeed-Mohammad-NEW--of-FDDС-800x600.jpg
Получить нужно jpg ? или любое другое расширение картинки
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
Если тема еще жива, то прошу подсказать как получить раширение файла?
D:\zen\___MY_FILLER\set\img\2еzeVdеVеKT-right-left--right-е.н.-Mohт--H.E.-Saeed-Mohammad-NEW--of-FDDС-800x600.jpg
Получить нужно jpg ? или любое другое расширение картинки
Регулярка .{3}$ в кубике 'Обработка текста - Regex'.

116835
 
  • Спасибо
Реакции: seodamage

Grindaize

Новичок
Регистрация
17.03.2023
Сообщения
14
Благодарностей
4
Баллы
3
Спасибо вам за ответ, но если расширение будет jpeg?
 
  • Спасибо
Реакции: Sergodjan

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
Если тема еще жива, то прошу подсказать как получить раширение файла?
D:\zen\___MY_FILLER\set\img\2еzeVdеVеKT-right-left--right-е.н.-Mohт--H.E.-Saeed-Mohammad-NEW--of-FDDС-800x600.jpg
Получить нужно jpg ? или любое другое расширение картинки
получить любое расширение:
\.(\w+)$

одно из:
\.(png|jpeg|jpg)$

и т.д.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
  • Спасибо
Реакции: seodamage и Grindaize

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