【发布时间】:2019-07-17 14:31:22
【问题描述】:
所以我在编程方面完全是个菜鸟,伙计们放轻松。
我需要能够删除以特定字母开头的文本。
例如,假设我有以下内容:
X10 Y20 Z30
Z10.34 X40.22 Y32.12
Y-90 Z-39 X-20
我需要删除以字母 Z 开头的每个单词,并且只删除这个单词。其他一切都必须保持不变。我将如何做到这一点?我目前正在寻找可以在 Excel 或 Notepad++ 上完成的解决方案
【问题讨论】:
所以我在编程方面完全是个菜鸟,伙计们放轻松。
我需要能够删除以特定字母开头的文本。
例如,假设我有以下内容:
X10 Y20 Z30
Z10.34 X40.22 Y32.12
Y-90 Z-39 X-20
我需要删除以字母 Z 开头的每个单词,并且只删除这个单词。其他一切都必须保持不变。我将如何做到这一点?我目前正在寻找可以在 Excel 或 Notepad++ 上完成的解决方案
【问题讨论】:
使用记事本++:
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
【讨论】:
这是一个快速的用户定义函数,应该可以完成删除。
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 开头的“单词”,但您可以通过指定可选参数将该字符更改为您想要的任何字符。
【讨论】: