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

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 [?]

  • Глобальный модератор
  • *
  • Сообщений: 3727
  • Репутация: 942
  • Пол: Мужской
    • Награды
  • Версия 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)', ' ')

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

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




Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 1026
  • Репутация: 131
  • Пол: Мужской
    • Награды
  • Версия 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 [?]

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

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


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

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


 

Похожие темы

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