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

  • Автор темы Автор темы LightWood
  • Дата начала Дата начала
Всем привет. Помогите решить задачу.
Есть текст:
Здание, назначение: жилое, площадь: 50.00 кв. м, кадастровый номер: 69:46:0090760:219, земельный участок, назначение: для индивидуального жилищного строительства, площадь: 440.00 кв. м, кадастровый номер: 69:46:0090760:20, Тверская область, г. Ржев
Пример 2
Нежилое помещение, назначение: нежилое помещение, площадь: 140.1 кв. м, кадастровый номер: 33:22:032051:257
Пример 3
Здание нежилое, площадью 78,80 кв.м., кад. № 29:18:110501:236, адрес: Архангельская область, Устьянский район, д. Юрятинская
Пример 4
Нежилое здание, общая площадь – 17 780,4 кв.м., к. н. 77:01:0004044:1082
2. Нежилое здание, общая площадь – 9 392,8 кв.м., к. н. 77:01:0004044:1083
3. Нежилое здание, общая площадь – 715,1 кв.м., к. н. 77:01:0004044:1084
4. Право долгосрочной аренды земельного участка общей площадью 16736 кв.м., к. н. 77:01:0004044:1. Категория земель: земли населенных пунктов; разрешенное использование: эксплуатации земельных участков предприятий
Пример 5
Нежилое здание, общая площадь – 17 780,4 кв.м., к. н. 77:01:0004044:1082
2. Нежилое здание, общая площадь – 9 392,8 кв.м., к. н. 77:01:0004044:1083
3. Нежилое здание, общая площадь – 715,1 кв.м., к. н. 77:01:0004044:1084
4. Право долгосрочной аренды земельного участка общей площадью 16736 кв.м., к. н. 77:01:0004044:1. Категория земель: земли населенных пунктов; разрешенное использование: эксплуатации земельных участков предприятий
____________________

Задача вытаскивать кадастровый номер привязываясь к двоеточию, возможно ли? Потому-что вариации написания слова кадастровый номер много, а сам номер стандартно написан через двоеточия
Искомая фраза начинает и заканчивается на цифру, содержит внутри только набор из цифр и двоеточий, при чем минимум хоть одно двоеточия должно быть обязательно (это чтобы исключить ошибочное попадание обычных номерных строк типа "345345345345"):
C#:
Развернуть Свернуть Копировать
\d[\d:]+:[\d:]+\d
 
  • Спасибо
Реакции: shell
Искомая фраза начинает и заканчивается на цифру, содержит внутри только набор из цифр и двоеточий, при чем минимум хоть одно двоеточия должно быть обязательно (это чтобы исключить ошибочное попадание обычных номерных строк типа "345345345345"):
C#:
Развернуть Свернуть Копировать
\d[\d:]+:[\d:]+\d

Да, работает, шикарно, спасибо!
А можно минимум два двоеточия как-то указать или все три? Чтобы исключить вероятность попадания каких-то еще значений.

Из википедии:
Согласно Приказу Министерства экономического развития Российской Федерации «Об утверждении порядка кадастрового деления территории Российской Федерации, порядка присвоения объектам недвижимости кадастровых номеров, номеров регистрации, реестровых номеров границ», кадастровый номер земельного участка выглядит так: АА:ВВ:CCCCСCC:КК, где
  • ААкадастровый округ.
  • ВВкадастровый район.
  • CCCCCCСкадастровый квартал состоит из 6 или 7 цифр.
  • ККномер земельного участка.
 
Да, работает, шикарно, спасибо!
А можно минимум два двоеточия как-то указать или все три? Чтобы исключить вероятность попадания каких-то еще значений.

Из википедии:
Согласно Приказу Министерства экономического развития Российской Федерации «Об утверждении порядка кадастрового деления территории Российской Федерации, порядка присвоения объектам недвижимости кадастровых номеров, номеров регистрации, реестровых номеров границ», кадастровый номер земельного участка выглядит так: АА:ВВ:CCCCСCC:КК, где
  • ААкадастровый округ.
  • ВВкадастровый район.
  • CCCCCCСкадастровый квартал состоит из 6 или 7 цифр.
  • ККномер земельного участка.
Вот по такой точной схеме регуляка. Логику надеюсь вы поняли.
Код:
Развернуть Свернуть Копировать
\d{1,2}:\d{1,2}:\d{6,7}:\d{1,4}
 
Здравствуйте, может кто подскажет как в одно действие сделать следующее:
к примеру есть
<p style="text-align: center;">
<p>
<p >
<p style=" >

как это всё привести к общему <p>, кроме, скажем <p style="text-align: center;">?
всё заменить могу через <p.*?> а вот исключение прописать что-то не выходит
хотелось бы понять принцип исключения в исключении)
 
<p.{1,}> меняя цифровое значение, можно исключить всё что идет полсе "p" в количестве 1 и выше или полсе запятой установить ограничение количества.
Проверьте в тестере рег. выражений, увидите как работает.
 
Подскажите, нужен код, чтобы выполнить Trim нескольким переменным одновременно в С#
Можно ли это в одном кубике реализовать?
 
Подскажите, нужен код, чтобы выполнить Trim нескольким переменным одновременно в С#
Можно ли это в одном кубике реализовать?
C#:
Развернуть Свернуть Копировать
project.Variables["Peremennaya1"].Value = project.Variables["Peremennaya1"].Value.Trim();
project.Variables["Peremennaya2"].Value = project.Variables["Peremennaya2"].Value.Trim();
project.Variables["Peremennaya3"].Value = project.Variables["Peremennaya3"].Value.Trim();
 
А есть общий код для всех разом переменных, чтобы не перечислять?
 
А есть общий код для всех разом переменных, чтобы не перечислять?
C#:
Развернуть Свернуть Копировать
var variables = project.Variables.ToArray();
foreach (var variable in variables){
string variableName = new Regex(@"(?<=\[).*(?=,)").Match(variable.ToString()).ToString();   
project.Variables[variableName].Value = project.Variables[variableName].Value.Trim();
}
Считываем имена всех переменных в проекте и прогоняем их через трим.
 
  • Спасибо
Реакции: shell, Sergodjan и orka13
C#:
Развернуть Свернуть Копировать
var variables = project.Variables.ToArray();
foreach (var variable in variables){
string variableName = new Regex(@"(?<=\[).*(?=,)").Match(variable.ToString()).ToString();  
project.Variables[variableName].Value = project.Variables[variableName].Value.Trim();
}
Считываем имена всех переменных в проекте и прогоняем их через трим.

Шикарно! Спасибо!
 
А еще помогите, есть ли вариант выполнить замену определенного символа или слова во всех переменных проекта одним кодом?
 
<p.{1,}> меняя цифровое значение, можно исключить всё что идет полсе "p" в количестве 1 и выше или полсе запятой установить ограничение количества.
Проверьте в тестере рег. выражений, увидите как работает.
чутка не то, из моего примера нужно убрать все возможные варианты <p>, кроме <p style="text-align: center;">
 
54de753024.jpg


есть таблица -
<tbody>
<tr role="row" class="odd"><td class="sorting_1">25524003</td><td>27.03.2020 12:36</td><td>текст 1</td></tr>
<tr role="row" class="even"><td class="sorting_1">25521602</td><td>27.03.2020 11:17</td><td>5текст 2</td></tr>
</tbody>

такис строк много
как можно вытянуть первую ячейку с классом sorting_1
нужно получить эти номера и потом закинуть ее в список.

спасибо..
 
54de753024.jpg


есть таблица -
<tbody>
<tr role="row" class="odd"><td class="sorting_1">25524003</td><td>27.03.2020 12:36</td><td>текст 1</td></tr>
<tr role="row" class="even"><td class="sorting_1">25521602</td><td>27.03.2020 11:17</td><td>5текст 2</td></tr>
</tbody>

такис строк много
как можно вытянуть первую ячейку с классом sorting_1
нужно получить эти номера и потом закинуть ее в список.

спасибо..
Банально через конструктор регулярок (клавиша F3 в проджектмейкере):
Код:
Развернуть Свернуть Копировать
(?<=<td\ class="sorting_1">).*?(?=</td)
Но такое лучше искать не регулярками а в DOM-модели страницы через xPath или конструктор действий.
 
Банально через конструктор регулярок (клавиша F3 в проджектмейкере):
Код:
Развернуть Свернуть Копировать
(?<=<td\ class="sorting_1">).*?(?=</td)
Но такое лучше искать не регулярками а в DOM-модели страницы через xPath или конструктор действий.
я пробовал, но видимо еще не научился)
конструктор как то не так ищет.
я привык на jq искать, а тут немного нетак, синтаксис немного отличается, в связи с этим и затуп.
пока решил, видимо через костыли, но буду смотеть в эту сторону. спасибо!
 
я пробовал, но видимо еще не научился)
конструктор как то не так ищет.
я привык на jq искать, а тут немного нетак, синтаксис немного отличается, в связи с этим и затуп.
пока решил, видимо через костыли, но буду смотеть в эту сторону. спасибо!
А чего не так то с конструктором?
регулярка.png
 
Всем хай.
Есть три одинаковых html блока, нужно взять последний блок(выделенные строки), единственное что отличает последний блок от остальных, то что после него идёт строка <section class="yandex" id="d1"> реально это сделать регуляркой?

C#:
Развернуть Свернуть Копировать
<div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
            
                       <div>11</div>
                       <div>22</div>
 
    </div>
 </div>
 
  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
            
                       <div>33</div>
                       <div>44</div>
 
    </div>
 </div>
 
  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
            
                       <div>55</div>
                       <div>66</div>
 
    </div>
 </div>
 <section class="yandex" id="d1">
 
Всем хай.
Есть три одинаковых html блока, нужно взять последний блок(выделенные строки), единственное что отличает последний блок от остальных, то что после него идёт строка <section class="yandex" id="d1"> реально это сделать регуляркой?

C#:
Развернуть Свернуть Копировать
<div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>11</div>
                       <div>22</div>

    </div>
</div>

  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>33</div>
                       <div>44</div>

    </div>
</div>

  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>55</div>
                       <div>66</div>

    </div>
</div>
<section class="yandex" id="d1">

Попробуйте
C#:
Развернуть Свернуть Копировать
<div\ class="catalog"\ id\ ="1"\ itemscope\ itemtype="https://schema\.org/">[\w\W]{1,150}(?=\ <section\ class="yandex"\ id="d1">)


регулярка.png
 
  • Спасибо
Реакции: Sanekk
Попробуйте
C#:
Развернуть Свернуть Копировать
<div\ class="catalog"\ id\ ="1"\ itemscope\ itemtype="https://schema\.org/">[\w\W]{1,150}(?=\ <section\ class="yandex"\ id="d1">)


спасибо работает, но только зависит от кол-во символов в искомом блоке, верно?
Я когда задавал вопрос написал что блоки одинаковые , это не совсем так, они одинаковые по построению, а кол-во <div> со значениями может сильно отличатся, причем заранее совсем не известно даже примерное кол-во.
HTML:
Развернуть Свернуть Копировать
<div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
            
                       <div>11</div>
                       <div>22</div>
 
    </div>
 </div>
 
  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
            
                       <div>33</div>
                       <div>44</div>
 
    </div>
 </div>
 
  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
            
                       <div>55</div>
                       <div>66</div>
                        <div>77</div>
                        <div>88</div>
                        <div>99</div>
    </div>
 </div>
 <section class="yandex" id="d1">
 
спасибо работает, но только зависит от кол-во символов в искомом блоке, верно?
Я когда задавал вопрос написал что блоки одинаковые , это не совсем так, они одинаковые по построению, а кол-во <div> со значениями может сильно отличатся, причем заранее совсем не известно даже примерное кол-во.
HTML:
Развернуть Свернуть Копировать
<div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>11</div>
                       <div>22</div>

    </div>
</div>

  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>33</div>
                       <div>44</div>

    </div>
</div>

  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>55</div>
                       <div>66</div>
                        <div>77</div>
                        <div>88</div>
                        <div>99</div>
    </div>
</div>
<section class="yandex" id="d1">
Да зависит от количества символов
[\w\W]{1,150}
В скобках квантификатора задается диапазон от и до.
По другому я не знаю как за раз взять.
 
спасибо работает, но только зависит от кол-во символов в искомом блоке, верно?
Я когда задавал вопрос написал что блоки одинаковые , это не совсем так, они одинаковые по построению, а кол-во <div> со значениями может сильно отличатся, причем заранее совсем не известно даже примерное кол-во.
HTML:
Развернуть Свернуть Копировать
<div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>11</div>
                       <div>22</div>

    </div>
</div>

  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>33</div>
                       <div>44</div>

    </div>
</div>

  <div class="catalog" id ="1" itemscope itemtype="https://schema.org/">
            <div class="Content">
           
                       <div>55</div>
                       <div>66</div>
                        <div>77</div>
                        <div>88</div>
                        <div>99</div>
    </div>
</div>
<section class="yandex" id="d1">
количество каких дивов?
 
  • Спасибо
Реакции: Sanekk
HTML:
Развернуть Свернуть Копировать
                                                    </td>
                                                   
                                                                                                            <td class="has-value">
                                                                                                                            <p class="gray-text">0</p>
                                                                <p class="dark-text">0</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value">
                                                                                                                            <p class="gray-text">0</p>
                                                                <p class="dark-text">0</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop">
                                                                                                                            <p class="gray-text">0</p>
                                                                <p class="dark-text">14 374</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop">
                                                                                                                            <p class="gray-text">14 374</p>
                                                                <p class="dark-text">0</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop table-tablet">
                                                                                                                            <p class="gray-text">0</p>
                                                                <p class="dark-text">73 480</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop table-tablet">
                                                                                                                            <p class="gray-text">73 480</p>
                                                                <p class="dark-text">146 633</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop table-tablet table-mobile">
                                                                                                                            <p class="gray-text">146 633</p>
                                                                <p class="dark-text">234 134</p>
                                                                                                                    </td>
                                                                                                    </tr>
                                                                                            <tr>
                                                    <td>
                                                     
                                                    </td>
                                                   
                                                    <td>
                                                     
                                                    </td>
                                                   
                                                                                                            <td class="has-value">
                                                                                                                            <p class="gray-text">65</p>
                                                                <p class="dark-text">37</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value">
                                                                                                                            <p class="gray-text">37</p>
                                                                <p class="dark-text">63</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop">
                                                                                                                            <p class="gray-text">63</p>
                                                                <p class="dark-text">64</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop">
                                                                                                                            <p class="gray-text">64</p>
                                                                <p class="dark-text">46</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop table-tablet">
                                                                                                                            <p class="gray-text">46</p>
                                                                <p class="dark-text">53</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop table-tablet">
                                                                                                                            <p class="gray-text">53</p>
                                                                <p class="dark-text">854</p>
                                                                                                                    </td>
                                                                                                            <td class="has-value table-desktop table-tablet table-mobile">
                                                                                                                            <p class="gray-text">854</p>
                                                                <p class="dark-text">1 173</p>
                                                                                                                    </td>
                                                                                                    </tr>
                                                                                            <tr>
                                                    <td>
Не могу "достать" последние числовые значения в каждом "абзаце", именно эти:
234 134 (29 строка)
1 173 (67 строка)
 

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