删除以特定字母开头的文本

时间:2019-02-23 18:55:09

标签: excel vba notepad++

所以我对编程完全是个菜鸟,请对我们轻松一点。

我需要能够删除以特定字母开头的文本。

例如,假设我有以下内容:

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

我需要删除每个字母Z开头的单词,并且只删除该单词。其他一切都必须保持原样。我将如何完成?我目前正在寻找可以在Excel或Notepad ++上完成的解决方案

2 个答案:

答案 0 :(得分:2)

使用记事本++:

  • Ctrl + H
  • 查找内容:Z\S+\h*
  • 替换为:LEAVE EMPTY
  • 检查环绕
  • 检查正则表达式
  • 取消检查. 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

答案 1 :(得分:0)

这是一个快速的用户定义函数,应完成删除操作。

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