String VB6子串索引
我试图在VB6中匹配电子邮件地址字符串中的域名,这不是我的日常语言。我基本上想从一个地址中提取域名(即。,admin@foo.com)作为比较。我想通过获取“@”之后的所有内容来提取它,我认为找到“@”的索引,然后使用String VB6子串索引,string,vb6,String,Vb6,我试图在VB6中匹配电子邮件地址字符串中的域名,这不是我的日常语言。我基本上想从一个地址中提取域名(即。,admin@foo.com)作为比较。我想通过获取“@”之后的所有内容来提取它,我认为找到“@”的索引,然后使用Left$()可以满足我的需要。如何获取索引?您可以使用InStr功能执行以下操作: 例如: s$ = "admin@foo.com" d$ = Mid$(s$, InStr(1, s$, "@") + 1) 变量d$将以字符串“foo.com”结尾。(别忘了检查以确保@符号存在
Left$()
可以满足我的需要。如何获取索引?您可以使用InStr
功能执行以下操作:
例如:
s$ = "admin@foo.com"
d$ = Mid$(s$, InStr(1, s$, "@") + 1)
变量d$将以字符串“foo.com”结尾。(别忘了检查以确保@符号存在,否则你只会得到整个源字符串。)我会在这里使用
Split
函数
Dim strEmail, arr, strDomain
strEmail = "emailaddress@website.com"
arr = Split(strEmail, "@")
if arr.Count > 1 then
strDomain = arr(1)
end if
希望这有帮助
编辑抱歉,忘记添加检查,以确保数组的值大于1。这些变量实际上应该是强类型的,而不是默认为变量。更重要的是,数组没有Count属性。除此之外,这将是一个可行的解决方案。还有几点:(1)
Split
返回一个从零开始的数组,因此您需要使用arr(0)
访问第一个数组元素;(2) 对于非工作的arr.Count
来说,一个可用的(尽管很笨拙)替换方法是使用UBound(arr)-LBound(arr)+1
。因为我应该检查@,所以我将使用InStr()来确定,但是如果“@”,它会返回什么值不是地址字符串的子字符串吗?如果找不到字符串,函数将返回0。非常感谢您的帮助。+1请参阅Instr上的VB6手册主题