【问题标题】:Delete text starting with specific letter删除以特定字母开头的文本
【发布时间】:2019-07-17 14:31:22
【问题描述】:

所以我在编程方面完全是个菜鸟,伙计们放轻松。

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

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

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

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

【问题讨论】:

    标签: excel vba notepad++


    【解决方案1】:

    使用记事本++:

    • 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
    

    【讨论】:

      【解决方案2】:

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

      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 开头的“单词”,但您可以通过指定可选参数将该字符更改为您想要的任何字符。

      【讨论】:

        猜你喜欢
        • 2013-09-06
        • 1970-01-01
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        相关资源
        最近更新 更多