Удалить текст, начинающийся с определенной буквы - PullRequest
0 голосов
/ 23 февраля 2019

Так что я полный нуб в программировании, будьте спокойны, ребята.

Мне нужно иметь возможность удалять текст, начинающийся с определенной буквы.

Например,допустим, у меня есть следующее:

X10 Y20 Z30
Z10.34 X40.22 Y32.12
Y-90 Z-39 X-20

И мне нужно удалить каждое слово, начинающееся с буквы Z, и только это слово.Все остальное должно оставаться нетронутым.Как бы я это сделал?В настоящее время я ищу решения, которые можно сделать на Excel или Notepad ++

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Использование Блокнота ++:

  • Ctrl + H
  • Найти что: Z\S+\h*
  • Заменить на: LEAVE EMPTY
  • check Обтекание
  • check Регулярное выражение
  • UNCHECK . matches newline
  • Заменить все

Объяснение:

Z       # literally, letter Z
\S+     # 1 or more non space characters
\h*     # 0 or more horizontal spaces

Результат для данного примера:

X10 Y20 
X40.22 Y32.12
Y-90 X-20
0 голосов
/ 23 февраля 2019

Вот быстрая определяемая пользователем функция, которая должна выполнить удаление.

Function noZeds(str As String, Optional delchar As String = "Z")
    Dim tmp As Variant, i As Long

    tmp = Split(str, Space(1))

    For i = LBound(tmp) To UBound(tmp)
        If UCase(Left(tmp(i), 1)) = UCase(delchar) Then tmp(i) = vbNullString
    Next i

    noZeds = Application.Trim(Join(tmp, Space(1)))
End Function

Обратите внимание, что по умолчанию функция удаляет «слова», начинающиеся с Z , но вы можете изменить этот символк чему угодно, указав необязательный аргумент.

enter image description here

...