Автор Тема: Удаление из строки первого слеша с помощью регулярного выражения  (Прочитано 2459 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DOMINANT [?]

  • Veni Vidi Vici
  • Осваивающий
  • **
  • Сообщений: 42
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Здравствуйте! Пытаюсь удалить и заменить на пробел из строки первый слеш тоесть между 51/22, вот так не получается пожирает соседние цифры

Код: AutoIt [Выделить]
$varNumber = "51/22.05.17/СКР/НЕТ"
$varNewNumber = StringRegExpReplace($varNumber, '\d(\/)\d', ' ')
MsgBox(1, "Результат", $varNewNumber)
 


Русское сообщество AutoIt


Помечен как лучший ответ пользователем DOMINANT Отправлен Март 08, 2017, 08:27:14

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3903
  • Репутация: 957
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
DOMINANT  [?]
Цитировать
первый слеш тоесть между 51/22
Код: AutoIt [Выделить]
$varNumber = "51/22.05.17/СКР/НЕТ"
$varNewNumber = StringRegExpReplace($varNumber, '/(?=\d)', ' ')
MsgBox(1, "Результат", $varNewNumber)



Добавлено: Март 07, 2017, 22:19:19
Корректнее вопрос звучал бы так: "Удаление из строки  слеша стоящего перед датой"
Тога паттерн был бы такой:
Код: AutoIt [Выделить]
$varNewNumber = StringRegExpReplace($varNumber, '/(?=(0[1-9]|[12][0-9]|3[01])[ \.-](0[1-9]|1[012])[ \.-](19|20|)\d\d)', ' ')

« Последнее редактирование: Март 07, 2017, 22:20:54 от Garrett »

Скорблю и помню.




Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1149
  • Репутация: 161
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
ИМХО, если можно обойтись без регулярных выражений, то лучше обойтись.
Код: AutoIt [Выделить]
$varNumber = "51/22.05.17/СКР/НЕТ"
$varNewNumber = StringReplace($varNumber, '/', ' ', 1)
MsgBox(1, "Результат", $varNewNumber)


Оффлайн DOMINANT [?]

  • Veni Vidi Vici
  • Осваивающий
  • **
  • Сообщений: 42

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
DOMINANT  [?]
Цитировать
первый слеш тоесть между 51/22
Код: AutoIt [Выделить]
$varNumber = "51/22.05.17/СКР/НЕТ"
$varNewNumber = StringRegExpReplace($varNumber, '/(?=\d)', ' ')
MsgBox(1, "Результат", $varNewNumber)



Добавлено: Март 07, 2017, 22:19:19
Корректнее вопрос звучал бы так: "Удаление из строки  слеша стоящего перед датой"
Тога паттерн был бы такой:
Код: AutoIt [Выделить]
$varNewNumber = StringRegExpReplace($varNumber, '/(?=(0[1-9]|[12][0-9]|3[01])[ \.-](0[1-9]|1[012])[ \.-](19|20|)\d\d)', ' ')


Спасибо друзья! Оба варианта хорошо работают



Отправлено с моего iPhone используя Tapatalk

Русское сообщество AutoIt


Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3903
  • Репутация: 957
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
DOMINANT

ПредупреждениеЗа нарушение общих правил (пункт В.2):
Цитировать
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
5429 Просмотров
Последний ответ Апрель 07, 2010, 21:22:36
от CreatoR
3 Ответов
4096 Просмотров
Последний ответ Октябрь 13, 2011, 10:56:02
от madmasles
1 Ответов
2576 Просмотров
Последний ответ Декабрь 30, 2011, 19:27:41
от madmasles
0 Ответов
1794 Просмотров
Последний ответ Декабрь 30, 2011, 22:37:28
от Kaster
11 Ответов
3926 Просмотров
Последний ответ Октябрь 14, 2012, 22:02:33
от general66
6 Ответов
2910 Просмотров
Последний ответ Октябрь 25, 2013, 20:38:36
от C2H5OH
11 Ответов
4478 Просмотров
Последний ответ Июль 16, 2015, 16:11:01
от alex33
19 Ответов
4279 Просмотров
Последний ответ Февраль 26, 2015, 22:11:44
от AZJIO
9 Ответов
2276 Просмотров
Последний ответ Январь 06, 2016, 18:11:32
от Kasper
6 Ответов
2886 Просмотров
Последний ответ Апрель 18, 2017, 01:34:24
от CreatoR