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

  • Автор темы Автор темы LightWood
  • Дата начала Дата начала
:bo:работает!!!! спасибо!!! вот еще подскажите, как переносы убрать? (\r\n).?
 
всем спасибо за помощь, разобрался!
 
Radzhab, огромная вам благодарность за помощь!
 
  • Спасибо
Реакции: Radzhab
Подскажите, в таком формате: Sep 28 или Okt 2 как взять только цифры, [0-9]* берет только если-б цифры были в начале, а тут? Или от обратного, удалить всё, что не цифры (с пробелами), а числа оставить?
 
Подскажите, в таком формате: Sep 28 или Okt 2 как взять только цифры, [0-9]* берет только если-б цифры были в начале, а тут? Или от обратного, удалить всё, что не цифры (с пробелами), а числа оставить?
PHP:
Развернуть Свернуть Копировать
[0-9]{1,3}.*?
или
PHP:
Развернуть Свернуть Копировать
\w{1,3}.*?  - берем 2 параметр
или
PHP:
Развернуть Свернуть Копировать
\d{1,3}.*?
 
  • Спасибо
Реакции: rotornet
females, спасибо, а что означает здесь {1,3} ?
 
это значит количество цифр от 1 до 3
 
  • Спасибо
Реакции: rotornet
Подскажите регулярку-способ.... нужно чтобы в одной строчке текст выводился допустим 70 символов, но чтобы слова не резались.
Допустим. у нас есть предложение
Он небольшой, но сделан в виде пошагового плана со всеми нужными шаблонами. Вы идете строго по шагам,которые просты и понятны.

Как сделать так, чтобы было примерно так:
Он небольшой, но сделан в виде
пошагового плана со всеми нужными
шаблонами. Вы идете строго по шагам,
которые просты и понятны.
 
Можно в цикле перебрать строку и заменить пробелы на перенос строки по индексам.
Код:
Развернуть Свернуть Копировать
 string text = "Он небольшой, но сделан в виде пошагового плана со всеми нужными шаблонами. Вы идете строго по шагам,которые просты и понятны.";
            StringBuilder strb = new StringBuilder(text);
            for (int i = 70; i < strb.Length; )
            {
                if (strb[i] != ' ')
                {
                    i--;
                }
                else
                {
                    strb.Replace(" ", "\r\n", i, 1);
                    i += 70;
                }
            }
            return strb.ToString();
 
(?<=\ |^).{0,50}(?=\ |$)
 
здравствуйте, подскажите регулярку для замены разрыв_строки,энтера на табуляцию?
 
(\r\n|\n) менять на {-String.Tab-}
 
  • Спасибо
Реакции: eldar
Уважаемый ТС, подскажите, как описать одной регуляркой замену в тексте кириллицы а на {a|а} (одна латинская другая наша) таким же макаром - с р у е х о В С А О К Х
спасибо!
 
Код:
Развернуть Свернуть Копировать
string text = "провЕрочный Текст";
string[] ruslowt = {"а","е","о","р","с","у","х"};
string[] rusupt = {"А","В","Е","К","М","Н","О","Р","С","Т","У","Х","Ь"};
string[] latlowt = {"a","e","o","p","c","y","x"};
string[] latupt = {"A","B","E","K","M","H","O","P","C","T","Y","X","b"};
for (int i = 0; i < ruslowt.Length; i++)
    text = text.Replace(ruslowt[i], "{"+ruslowt[i]+"|"+latlowt[i]+"}");
for (int i = 0; i < rusupt.Length; i++)
    text = text.Replace(rusupt[i], "{"+rusupt[i]+"|"+latupt[i]+"}");

return text;
 
Спасибо! А возможно сделать, чтобы "Проверочный текст" подгружался из переменной?)
 
string text = project.Variables["var"].Value;

вместо первой строки
var - имя переменной
 
Спасибо.
 
Подскажите пожалуйста, как спарсить все название и описание вот отсюда http://subscribe.ru/catalog/woman/relation

Запарился уже с регуляркой. вот (?<=<h2>([\S\s]*)<a\ href([\s\S]*))[\w\W]*?(?=</p>([\S\s]*)<div\ class="act">)
Что исправить надо?
Чтоб получить все 50 названий и описаний? :be:
Побояню - можно сделать так было бы одной регуляркой, и брать соответственно строки - 1-я заголовок, вторая-текст-описание :
(((?<=<h2>.*\r\n<a href="\/catalog\/.*?">(<b>)*?).*(?=(</b>)*?</a>))|((?<=<div class="content">\r\n<p>).*(?=</p>\r\n</div>)))
 
у вас конструкция регулярки ИЛИ
и то и другое она не спарсит.
 
у вас конструкция регулярки ИЛИ
и то и другое она не спарсит.
Она парсит в формате
0. название1
1. текст1
2. название2
3. текст2
и т.д. брать результат регекспа до 99 , класть в таблицу\список .. и далее делать что угодно .. Это как вариант для таких людйе как я, которые в программировании на шарпе ни бум-бум ))
 
Подскажите плиз кто-нить регулярку для
/upload/iblock/ab4/ab4f41b7e262aa5eeb0a3f767e695f27.jpg
нужно получить:
ab4f41b7e262aa5eeb0a3f767e695f27.jpg
а то туплю чего-то.
Заранее спасибо.
 
(?<=/)[^/]+$
 
  • Спасибо
Реакции: Severip
Ещё варик )
((?!/).)+$
 
  • Спасибо
Реакции: Severip
Спасибо!
 
Еще подобный вопрос возник.
Есть список цен, которые нужно привести к виду, т.е.
3172

2343
0
2039
а надо:
3172,00

2343,00

2039,00
Какой регуляркой можно выцепить строку с ценой и добавить к ней ,00 ?
Как убить нули в строчках, где они есть, не повредив другие строки?
Спасибо.
 
Точнее 0 не надо убивать, а привести его тоже к виду: 0,00
 
Пытаясь разобраться как парсить сразу в таблицу нашел тут пример. Дабы все понять начал тестировать.
Создал проект и повторил вкратце все. Но у меня косяк, посмотрите, что я не так сделал?
https://www.dropbox.com/s/q8039z6a8v5n9wd/parsing-table-test.xmlz?dl=0
 
C#:
Развернуть Свернуть Копировать
var html = project.Variables["dom"].Value;
var lst = project.Lists["Список"];
string pattern = "(?<=<div\\ class=\"entry\\ fullentry\">)[\\w\\W]*?<div\\ class=\"act\">"; // регулярка для div'a
var matches = Regex.Matches(html,pattern);
foreach (Match match in matches)
{
var mar = match.Value;
    string zagolovok = Regex.Match(mar, "(?<=<b>)[\\w\\W]*?(?=</b></a>)").Value;
    if (zagolovok == "")
    {
        var buff = Regex.Match(mar, "(?<=<h2>\\d{1,5})[\\w\\W]*?</h2>").Value;
        zagolovok = Regex.Match(buff, "(?<=[>])[^<>]+(?=[<])").Value.Trim();
    }
    string opisanie = Regex.Match(mar,"(?<=<div\\ class=\"content\">)[\\w\\W]*?(?=</div>)").Value.Replace("<p>","").Replace("</p>","");
    lst.Add(zagolovok+";"+opisanie); // в список кидаем Заголовок;Описание
}
    
return "Все прошло успешно";
 

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