Что нового

Замена знаков по сложному шаблону (в начале, середине, конце строки)

op_joke

Новичок
Сообщения
20
Репутация
0
Здравствуйте!
Так как я могу только в самые простые манипуляции с регулярными выражениями, помогите мне, пожалуйста с примером.
Имеется текст в текстовом документе, внутри - в каждой строчке запись вот по такому шаблону:

00_00_aa=[A-Z][a-z][0-9]_00_[A-Z][a-z][0-9]_а

00 - это две любые цифры - их количество не меняется
а/аа - это соответственно 1 и 2 любые буквы - их количество не меняется
После знака "=" абсолютно любое содержимое но всегда есть "_00_"
А задача этого скриптика заменить первые два знака "_" слева и по середине перед 00 и "=" на знак ";"
Мне нужно только сам шаблон, остальное я сделаю сам. Спасибо =)

Реальный пример кода из лога: 00_00_aa=hj_aui_o90_00_llopmnb_а
Должно получится: 00;00;aa;hj_aui_o90;00_llopmnb_а
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Первый два знака можно найти так: (?<=^\d\d|^\d\d_\d\d)_ заменяем на ;


Добавлено:
Сообщение автоматически объединено:

А второй: ищем _00_ заменяем на ;00_
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
На самом деле, не такое уж и сложное выражение
Код:
$string = '00_00_aa=hj_aui_o90_00_llopmnb_а'
$pattern = '(\d\d)_(\d\d)_([a-zA-Z]+?)=([0-9a-zA-Z_]+)_(00_[0-9a-zA-Z]+?)'
ConsoleWrite(StringRegExpReplace($string, $pattern, '$1;$2;$3;$4;$5') & @LF)
 
Автор
O

op_joke

Новичок
Сообщения
20
Репутация
0
edyapd сказал(а):
На самом деле, не такое уж и сложное выражение
Код:
$string = '00_00_aa=hj_aui_o90_00_llopmnb_а'
$pattern = '(\d\d)_(\d\d)_([a-zA-Z]+?)=([0-9a-zA-Z_]+)_(00_[0-9a-zA-Z]+?)'
ConsoleWrite(StringRegExpReplace($string, $pattern, '$1;$2;$3;$4;$5') & @LF)

Да я и не спорю. Я просто еще не умею. ;D
Спасибо ;D
 
Верх