我想删除字符串中错误使用的某些特定字符。
"........我只想删除这段文字之外的点..............."
如您所见,我不能使用replace方法。我必须找到一种方法只删除字符串左右两侧的字符,而这些点只是我想要删除的字符之一。我有一个包含这些不需要的字符的数组。因此,在处理后,字符串应该像这样:
"我只想删除这段文字之外的点"
但我找不到一种方法来实现这个目标。
VB6有一个Trim()
函数,但它只能移除空格。
要从两端移除字符,您需要依次检查每个末端并删除字符,直到获得其他内容:
Function TrimChar(ByVal Text As String, ByVal Characters As String) As String
'Trim the right
Do While Right(Text, 1) Like "[" & Characters & "]"
Text = Left(Text, Len(Text) - 1)
Loop
'Trim the left
Do While Left(Text, 1) Like "[" & Characters & "]"
Text = Mid(Text, 2)
Loop
'Return the result
TrimChar = Text
End Function
结果:
?TrimChar("........I.wanna.delete.only.the.dots.outside.of.this.text...............", ".")
I.wanna.delete.only.the.dots.outside.of.this.text
这远非最优解,但你可以扩展它以仅计算结束位置,然后进行一次Mid()
调用。
Public Function Remove(text As String) As String
text = Replace(text, "..", "")
If Left(text, 1) = "." Then
text = Right(text, Len(text) - 1)
End If
If Right(text, 1) = "." Then
text = Left(text, Len(text) - 1)
End If
Remove = text
End Function
text = Replace(text, "..", "")
这就是你所需要的。
Replace()
函数区分你想保留的点和你不想保留的点?在他们知道“保留”部分是什么之前,他们无法替换整个字符串(这就是他们所询问的)。 - Deanna