Еще один вопрос про регулярки.

Andreii

Пользователь
Регистрация
29.08.2015
Сообщения
42
Реакции
1
Баллы
8
есть столбец:
QWQE.QWE
ASQD.ASD
ZXCA.SDF
AAA
ASD.aaa
SDF.aaa

Нужно вытащить строку ААА условие: любые 3 большие буквы(могут быть пробел перед после). пробовал по всякому не получается, чат гпт сдался тоже... помучавшись могу предположить что нужно писать условие, но тут мои полномочия всё..
Если кто в курсе напишите плз
 
Три большие и более англ буквы [A-Z]{3,}
Три большие и более англ буквы c вероятными пробелами до и после ([\s\t]*)[A-Z]{3,}([\s\t]*)
 
  • Спасибо
Реакции: Andreii
Три большие и более англ буквы [A-Z]{3,}
Три большие и более англ буквы c вероятными пробелами до и после ([\s\t]*)[A-Z]{3,}([\s\t]*)
спасибо кншн, но этот я вариант пробовал... неверный результат. Нужно вытащить строку ААА
 
  • Спасибо
Реакции: Andreii
Если я правильно понял, то нужно искать совпадение в определенном столбце таблицы, потом брать найденную строку и работать с данными из неё.
Можно использовать вот такой код:
Ищем номер строки, значение которой соответствует регулярному выражения.:
Развернуть Свернуть Копировать
// вместо table name - название своей таблицы.
IZennoTable table = project.Tables["table name"];

// задаём номер столбца в котором нужно искать значение. Первый столбец - 0, второй - 1 и т.д.
int column_number = 2;

int row_number = -1;

// перебираем в цикле все строки таблицы, получаем значение ячейки в нужном столбце, действием Trim удаляем возможные пробелы в начале и конце взятого значения, проверяем значение на совпадение с регулярным выражением.
for (int i = 0; i < table.RowCount; i++)
{
    string cell_value = table.GetCell(column_number, i).Trim();
    if (Regex.IsMatch(cell_value, @"^[A-Z]{3}$"))
    {
        row_number = i;
        break;
    }
}

// Если значение в строке совпало с регулярным выражением, то в переменную row_number вернётся номер первой соответствующей строки таблицы. Если совпадений не было, то вернётся значение "-1".
project.Variables["row_number"].Value = row_number.ToString();

Прикрепил пример шаблона и таблицы.
 

Вложения

  • Спасибо
Реакции: Andreii
Возможно, имеется в виду, 3 любых подряд стоящих одинаковых букв в верхнем регистре (найдёт ровно 3 буквы, меньше и больше 3 не найдёт)

([A-Z])(?<!\1.)\1{2}(?!\1)
 
  • Спасибо
Реакции: Sergodjan и Andreii
Возможно, имеется в виду, 3 любых подряд стоящих одинаковых букв в верхнем регистре (найдёт ровно 3 буквы, меньше и больше 3 не найдёт)

([A-Z])(?<!\1.)\1{2}(?!\1)
(найдёт ровно 3 буквы, меньше и больше 3 не найдёт) 3 любых англ в верхнем (GDT KIU ERE)
 
Если я правильно понял, то нужно искать совпадение в определенном столбце таблицы, потом брать найденную строку и работать с данными из неё.
Можно использовать вот такой код:
Ищем номер строки, значение которой соответствует регулярному выражения.:
Развернуть Свернуть Копировать
// вместо table name - название своей таблицы.
IZennoTable table = project.Tables["table name"];

// задаём номер столбца в котором нужно искать значение. Первый столбец - 0, второй - 1 и т.д.
int column_number = 2;

int row_number = -1;

// перебираем в цикле все строки таблицы, получаем значение ячейки в нужном столбце, действием Trim удаляем возможные пробелы в начале и конце взятого значения, проверяем значение на совпадение с регулярным выражением.
for (int i = 0; i < table.RowCount; i++)
{
    string cell_value = table.GetCell(column_number, i).Trim();
    if (Regex.IsMatch(cell_value, @"^[A-Z]{3}$"))
    {
        row_number = i;
        break;
    }
}

// Если значение в строке совпало с регулярным выражением, то в переменную row_number вернётся номер первой соответствующей строки таблицы. Если совпадений не было, то вернётся значение "-1".
project.Variables["row_number"].Value = row_number.ToString();

Прикрепил пример шаблона и таблицы.
тоже вариант, спасибо, но не в моем случае..(
 
тоже вариант, спасибо, но не в моем случае..(
Так может напишете подробнее, что за случай. Потому что не совсем понятны условия. Это таблица? Нужно получить все значения подходящие под условие? Или только одно? Или речь вообще идёт о базе данных...
 
  • Спасибо
Реакции: Andreii
[\s\t]{1}[A-Z]{3}[\s\t]{1}
 
  • Спасибо
Реакции: Andreii и Sergodjan
Еще вопрос в кубике взять(удалить) строку из таблицы по регулярному выражению, \b{-Variable.A-}\b
Variable.A =QWER

берет/удаляет QWER.US QWER.QS QWER.QO содержание эту переменную, \b пчмт не работает
121924
 
Получилось вот так, НО в тестере работает, а в кубики таблицы нет ...
121925
 
через отдельную переменную тож делал, не помогает ...
121929
 
  • Спасибо
Реакции: Andreii
Еще вопрос в кубике взять(удалить) строку из таблицы по регулярному выражению, \b{-Variable.A-}\b
Variable.A =QWER

берет/удаляет QWER.US QWER.QS QWER.QO содержание эту переменную, \b пчмт не работаетПосмотреть вложение 121924
Попробуйте по такому критерию брать/удалять строку: \b{-Variable.A-}\b[^\.]
 
  • Спасибо
Реакции: Andreii

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