Как с помощью регулярки привести определенные элементы в нижний регистр?

wisent89

Client
Регистрация
03.09.2018
Сообщения
4
Благодарностей
0
Баллы
1
Добрый день, уважаемые форумчане, нужна помощь по регуряным выражениям. Есть текст на странице, над которым необходимо произвести замену всех элементов с регулярным выражением: src=".*?" Как сделать так, чтобы все что данным регулярным выражением нашлось - заменить на тоже самое, только в нижнем регистре.
Регулярку используют вот такую: src=".*?"

Т.е. было: src="images/h/PTT-72849Dx-656-40.jpg"

Стало: src="images/h/ptt-72849dx-656-40.jpg"
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

wisent89

Client
Регистрация
03.09.2018
Сообщения
4
Благодарностей
0
Баллы
1
ToLower - преобразование в строчные символы
Стандартная функция замены не подходит, т.к. в целом текст большой и надо изменить регистр только картинок, а не всего текста в целом.
А регулярным выражением пробовал – изменить, у меня не получается.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

dafaroff

Client
Регистрация
03.05.2011
Сообщения
76
Благодарностей
137
Баллы
33
Стандартная функция замены не подходит, т.к. в целом текст большой и надо изменить регистр только картинок, а не всего текста в целом.
А регулярным выражением пробовал – изменить, у меня не получается.
Попробуйте так
C#:
string source = project.Variables["source"].Value;
string pattern = @"(?<=src="").*?(?="")";

Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(source);

foreach(Match m in matches)
{
    if(m.Value.Length > 0)
        source = source.Replace(m.Value, m.Value.ToLower());
}

return source;
 
  • Спасибо
Реакции: wisent89

wisent89

Client
Регистрация
03.09.2018
Сообщения
4
Благодарностей
0
Баллы
1
Попробуйте так
C#:
string source = project.Variables["source"].Value;
string pattern = @"(?<=src="").*?(?="")";

Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(source);

foreach(Match m in matches)
{
    if(m.Value.Length > 0)
        source = source.Replace(m.Value, m.Value.ToLower());
}

return source;
Спасибо Вам большое, все отлично работает
 

Dozer009

Client
Регистрация
26.11.2012
Сообщения
156
Благодарностей
6
Баллы
18
всем доброго времени суток !

есть текст
HELLO GUYS PLEASE SHARE THIS VIDEO AND LIKE THIS VIDEO AND PLEASE....SUBSCRIBE THIS CHANNEL.....
DOn't Call Him
Support me on Patreon! PATREON:
составил регулярку на замену в нижний регистр
C#:
regexTest = System.Text.RegularExpressions.Regex.Replace(regexTest, @"([A-Z]{2,})", "Что вот здесь написать, чтобы замена на нижний регистр", System.Text.RegularExpressions.RegexOptions.Multiline);
или так не выполняется перевод в нижний регистр
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Код:
"Что вот здесь написать, чтобы замена на нижний регистр"
Я хез, но возможно так:
Код:
([a-z]{2,})
 

Dozer009

Client
Регистрация
26.11.2012
Сообщения
156
Благодарностей
6
Баллы
18
Код:
"Что вот здесь написать, чтобы замена на нижний регистр"
Я хез, но возможно так:
Код:
([a-z]{2,})
туда врядли рег выражение можно вписать , вообщем тоже так же думал , он просто заменяет все что найдет на ([a-z]{2,})
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Последнее редактирование:
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
  • Спасибо
Реакции: nicanil

Dozer009

Client
Регистрация
26.11.2012
Сообщения
156
Благодарностей
6
Баллы
18
Вам нужно в нижний регистр перевести строку?

Это можно сделать с помощью стандартного экшена Обработка текста - ToLower.
Если нужен C# код, то этот экшен можно конвертировать в код.
да вкурсе что есть такое , вот хочу через это выражение возможно ли...
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
в c# ( а значит и зенно кубике) регулярки не имеют модификаторов замены с изменением регистра
 

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