我需要删除两个字符串之间的文本。
文本示例如下:
Abc%678x”cv ","@metadata":{abxkl "DataArray"}},{"columnName":"
要求是从 ,"@met
开始删除文本,直到 "}
要求是使用 、"@met
和 "}
作为开始和结束标识符,并删除它们之间的文本(包括标识符)。
文件中可能会多次出现此开始和结束标识符。
输出应如下所示:
Abc%678x”cv "},{"columnName":"
如何编写 Excel 公式或简单的 VBA 脚本来删除两个字符串之间的文本(包括标识符)?
最佳答案
公式:
=LEFT(A1,FIND(",""@met",A1)-1)&RIGHT(A1,LEN(A1)-FIND("}",A1,FIND("""@met",A1)))
VBA函数:
Function RemoveBetweenSeparators( _
ByVal MyString As String, _
ByVal SepL As String, _
ByVal SepR As String) _
As String
Dim sL As String
Dim sR As String
sL = Split(MyString, SepL)(0)
sR = Replace(MyString, sL, "")
sR = Replace(sR, Split(sR, SepR)(0) & SepR, "")
RemoveBetweenSeparators = sL & sR
End Function
可以这样使用:
=RemoveBetweenSeparators(A1,"""@meta","}")
编辑:我第一次也错过了“多次出现”的要求!这使得它有点棘手,但试试这个:
Function RemoveBetweenSeparatorsMultiple( _
ByVal MyString As String, _
ByVal SepL As String, _
ByVal SepR As String) _
As String
Dim sOut As String
Dim sL As String
Do Until InStr(MyString, SepL) = 0
sL = Split(MyString, SepL)(0)
sOut = sOut & sL
MyString = Replace(MyString, sL & SepL, "", 1, 1)
sL = Split(MyString, SepR)(0)
MyString = Replace(MyString, sL & SepR, "", 1, 1)
Loop
RemoveBetweenSeparatorsMultiple = sOut & MyString
End Function
关于excel - 如何删除两个字符串之间的文本,包括标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47157491/