2012-11-06 38 views
0

嘿家伙我坚持这个问题。请帮忙。从输入字符串中提取字符vb.net

我想写一个程序,可以从输入字符串中提取字母字符和特殊字符。字母字符是任意字符从“A”到“Z”(大写字母和数字不包括“)的特殊字符是任何其它字符不是字母数字

例:

string = hello//[email protected] 

alphanumerical characters = hellothisismystringcapetown 

special characters = //[email protected] 

现在我的问题是这样的:

  1. 我如何遍历所有字符

    (for循环,我用读这样的x = 0来? strname.length)...这是正确的吗?

  2. 如何将字符提取到字符串?

  3. 如何确定特殊字符?

任何输入是非常赞赏。
非常感谢您的时间。

回答

0

您可以通过每个字符循环如下:

For Each _char As Char In strname 
    'Code here 
Next 

For x as integer = 0 to strname.length - 1 
    'Code here 
Next 

,或者您可以使用正则表达式来替换你不要在你的字符串所需要的值(我认为这可能是更快但我不是专家)看看:http://msdn.microsoft.com/en-us/library/xwewhkd1.aspx

编辑

更换代码看起来如下虽然我不能肯定什么正则表达式(称为模式目前仅更换数字变量)将是:

Dim pattern As String = "(\d+)?" 'You need to update the regular expression here 
Dim input As String = "123//hello//[email protected]" 
Dim rgx As New Regex(pattern) 
Dim result As String = rgx.Replace(input, "") 
0

因为你需要不断的值,你”我想循环你的字符串。因此,保留一个字符列表将会派上用场,因为您稍后可以创建一个新字符串。然后利用简单的正则表达式测试来确定在哪里放置东西。伪代码看起来像这样。

Dim alphaChars As New List(Of String) 
Dim specialChars As New List(Of String) 

For Each _char As Char in testString 

    If Regex.IsMatch(_char, "[a-z]")) Then 

     alphaChars.Add(_char) 

    Else 

     specialChars.Add(_char) 

    End If 

Next 

然后如果你需要倾倒你的结果变成一个完整的字符串,你可以简单地使用

String.Join(String.Empty, alphaChars.ToArray()) 

注意,此代码是其他任何东西比AZ被认为是一个特殊字符的假设,所以如果需要,你可以在你的else子句中做第二个正则表达式来以类似的方式测试你的特殊字符。这实际上取决于您对输入的控制程度。

+0

我认为他想要的不是添加A-Z,0-9作为specialChars,所以他需要额外的else如果什么都不做 – Beth