Что нового

[RegExp] Замена по условию

Крепыш

Новичок
Сообщения
105
Репутация
2
Помогите написать регулярку. Задача: есть строка вида '^(D|\d{1,2}),<...>' Надо заменить на: '<тут_условие>,<...>'
где <тут_условие>:
1) если в найденом буква 'D', то на слово 'Day'
2) если цифры, то оставить цифры

Пример:
'D,совпадение' заменяем на 'Day,замена'
'5,совпадение' заменяем на '5,замена'
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
Крепыш
приведи пример строки и что на что менять, а то на такие "примеры" воображение не срабатывает
можно использовать
Код:
 
Автор
К

Крепыш

Новичок
Сообщения
105
Репутация
2
joiner сказал(а):
можно использовать
Код:
Ну до этого я сам догадался. Но хотелось бы сделать это одним регулярным выражением.

joiner сказал(а):
приведи пример строки и что на что менять, а то на такие "примеры" воображение не срабатывает
Ок. В два действия это будет выглядеть так:
Код:
$sText = 'D,1230'
If StringRegExp($sText, '^D,(\d{3})') Then
  $sText = StringRegExpReplace($sText, '^(D),(\d{3})0', 'Day,$2')
Else
  $sText = StringRegExpReplace($sText, '^(\d{1,2}),(\d{3})0', '$1,$2')
EndIf
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Крепыш
Вы пробовали пример?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Верх