Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String VB6子串索引_String_Vb6 - Fatal编程技术网

String VB6子串索引

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”结尾。(别忘了检查以确保@符号存在

我试图在VB6中匹配电子邮件地址字符串中的域名,这不是我的日常语言。我基本上想从一个地址中提取域名(即。,admin@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手册主题