Замените даты года четырьмя цифрами на две цифры - PullRequest
3 голосов
/ 07 мая 2019

Ну, что я пытаюсь сделать, это заменить годы с 4 цифр на 2 цифры, как

2018 только 18

Пример: "FIAT - 147 / Эльба / Фиорино / Огги / Панорама / Premio / Spazio / Uno - 01/1976 - 12/2001 - Mille - 1,0 8 В / 1,050 / 1,3 / 1,5"

Это было бы как "FIAT - 147 / Elba / Fiorino / Oggi / Panorama / Premio / Spazio / Uno - 01/76 - 12/01 - Mille - 1,0 8 В / 1,050 / 1,3 / 1,5"

Я пытался использовать regex.replace, но он не работал ...

Sub test()
    Dim x, z
    y = "FIAT - 147 / Elba / Fiorino / Oggi / Panorama / Premio / Spazio / Uno - 01/1976 - 12/2001 - Mille - 1.0 8V / 1.050 / 1.3 / 1.5"
    Set regx = CreateObject("vbscript.regexp")
    regx.Pattern = "(\d{4})"
    regx.Global = True
    Set x = regx.Execute(y)
    Debug.Print regx.Replace(y, Right(x.Item(0), 2))
End Sub

Это вернет это

FIAT - 147 / Elba / Fiorino / Oggi / Panorama / Premio / Spazio / Uno - 01/76 - 12/76 - Mille - 1.0 8V / 1.050 / 1.3 / 1.5

Любая помощь? Я пытался использовать регулярные выражения, чтобы найти 4 года, но если у вас есть идеи с формулами, то это прекрасно

1 Ответ

5 голосов
/ 07 мая 2019

Используйте .Replace непосредственно с регулярным выражением, которое совпадает с первыми 2 цифрами года, совпадает и захватывает последние 2 цифры:

y = "FIAT - 147 / Elba / Fiorino / Oggi / Panorama / Premio / Spazio / Uno - 01/1976 - 12/2001 - Mille - 1.0 8V / 1.050 / 1.3 / 1.5"
Set regx = CreateObject("vbscript.regexp")
regx.Pattern = "\b\d{2}(\d{2})\b"
regx.Global = True
Debug.Print regx.Replace(y, "$1")

Вывод:

FIAT - 147 / Elba / Fiorino / Oggi / Panorama / Premio / Spazio / Uno - 01/76 - 12/01 - Mille - 1.0 8V / 1.050 / 1.3 / 1.5

См. regex demo .

Шаблон \b\d{2}(\d{2})\b соответствует

  • \b - граница слова
  • \d{2} - любая 2цифры
  • (\d{2}) - группа 1 ($1 относится к этому значению из шаблона замены): две последние цифры года
  • \b - граница слова

Границы слова могут быть удалены в случае, если ваши значения года могут быть склеены с другими цифрами, буквами или _ символами.Регулярное выражение может быть дополнительно скорректировано для этих позиций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...