【问题标题】:How to get string before a particular symbol within a string如何在字符串中的特定符号之前获取字符串
【发布时间】:2015-12-15 09:13:43
【问题描述】:

在 vb.net 中是否有任何方法可以从电子邮件地址获取用户名?

例如,我有一个字符串变量,它由值 tracywilly@gmail.com 组成,这里我需要获取用户名,即 tracywilly 是我的预期输出

Dim email_addr as string
Dim usr as string
email_addr = "tracywilly@gmail.com"

【问题讨论】:

  • 搜索 & 然后使用子字符串?
  • 这可能不足以生成用户名。用户名在您的应用程序中应该是唯一的,如果两个不同的用户的电子邮件地址为tracywilly@gmail.comtracywilly@example.com 都注册了,他们不应该都拥有tracywilly 的用户名。删除电子邮件地址的末尾后,您需要检查 tracywilly 用户名是否存在,并且(假设电子邮件地址尚未与其他用户帐户/用户名关联),添加数字后缀,例如 tracywilly1并重复检查。等等,直到找到一个没有被使用过的用户名。
  • @MattWilko 是的,这是一个明显的错误;-)

标签: regex vb.net string-function


【解决方案1】:

您可以在 vb.net 中使用 split()regex 实现此目的

看下面的方法

1.)split()函数:

 Function username(ByVal str As String) As String
        Dim arStr As String()
        arStr = str.Split("@")
        username = arStr(0)
        Return username
    End Function

2.) regex:

Function username_1(ByVal str As String) As String
    username_1 = System.Text.RegularExpressions.Regex.Match(str, "^.*?(?=@)").ToString
    Return username_1
End Function

它是如何工作的?

Dim email_addr as string
Dim usr as string
email_addr = "tracywilly@gmail.com"
usr = username(email_addr)
usr = username_1(email_addr)

Live Demo

【讨论】:

  • 感谢您提供详细信息,这正是我想要的,上帝保佑!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-21
  • 1970-01-01
  • 2022-11-10
  • 2012-09-16
  • 2019-06-16
相关资源
最近更新 更多