Удаление целых чисел из буквенно-цифровой строки - PullRequest
1 голос
/ 04 июня 2019

У меня проблемы с поиском способа удалить плавающие целые числа из ячейки, не удаляя числа, прикрепленные к концу моей строки.Могу ли я получить некоторую помощь относительно того, как решить эту проблему?

Например, на прилагаемом изображении вместо:
john123 456 hamilton, я хочу:
john123 hamilton

image

1 Ответ

1 голос
/ 04 июня 2019

Это можно сделать с помощью регулярных выражений.Вы сопоставите данные, которые хотите удалить, и замените эти данные пустой строкой.

Поскольку вы не предоставили никакого кода, все, что я могу вам сделать, - это предоставить вам функцию, которую вы можетевнедрить в свой проект.Эта функция может использоваться в VBA или в качестве функции рабочего листа, например =ReplaceFloatingIntegers(A1).

. Вам нужно будет добавить ссылку в Microsoft VBScript Regular Expressions 5.5, перейдя Инструменты , Ссылки в меню VBE.

Function ReplaceFloatingIntegers(Byval inputString As String) As String

    With New RegExp
        .Global = True
        .MultiLine = True
        .Pattern = "(\b\d+\b\s?)"
        If .Test(inputString) Then
            ReplaceFloatingIntegers = .Replace(inputString, "")
        Else
            ReplaceFloatingIntegers = inputString
        End If
    End With

End Function

Разбивка шаблона

  • ( ... ) Это группа захвата.Все, что захвачено в этой группе, можно будет заменить функцией .Replace().
  • \b Это граница слова.Мы используем это, потому что мы хотим тестировать от края до края любых «слов» (которые включают слова, которые содержат только цифры в нашем случае).
  • \d+\b Это будет соответствовать любой цифре (\d)от одного до неограниченного числа + раз, до границы следующего слова \b
  • \s? будет соответствовать одному символу пробела, но необязательно ?, если этот символ существует

Вы можете просмотреть эту персонализированную страницу Regex101 , чтобы увидеть, насколько это соответствует вашим данным.Все, что соответствует здесь, заменяется пустой строкой.

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