VB.Net Tutorial/Regular Expressions/Regular Expressions — различия между версиями
| Admin (обсуждение | вклад)  м (1 версия) | 
| (нет различий) | 
Текущая версия на 12:57, 26 мая 2010
Содержание
[убрать]- 1 Count chars: Regex.Matches(quote, .)
- 2 Count line: Regex.Matches(quote, ".+\n*")
- 3 Every word replaced by another word
- 4 Match regular expression to string and print out all matches
- 5 Regex.CompileToAssembly
- 6 Regex Matches
- 7 Regex("\w+")
- 8 Replace first 3 digits
- 9 String split at commas
- 10 Using Regex method Replace: Replace one string with another
- 11 Using Regex method Replace: substituted for *
- 12 Word count
- 13 Word count: Regex.Matches(quote, "\w+")
Count chars: Regex.Matches(quote, .)
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim quote As String = _
            "The important thing" & vbNewLine & _
            "is not to stop questioning." & vbNewLine & _
            "--Albert Einstein" & vbNewLine
        Dim numChars As Integer = Regex.Matches(quote, ".").Count
        Console.WriteLine(numChars)
    End Sub
End Class66
Count line: Regex.Matches(quote, ".+\n*")
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim quote As String = _
            "The important thing" & vbNewLine & _
            "is not to stop questioning." & vbNewLine & _
            "--Albert Einstein" & vbNewLine
        Dim numLines As Integer = Regex.Matches(quote, ".+\n*").Count
        Console.WriteLine(numLines)
    End Sub
End Class3
Every word replaced by another word
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
    
       Console.WriteLine(Regex.Replace("This sentence ends in 5 stars *****", "\w+", "word"))
    End Sub
End Classword word word word word word *****
Match regular expression to string and print out all matches
Imports System.Text.RegularExpressions
Module Tester
   Sub Main()
      Dim myMatch As Match
      Dim expression As Regex = New Regex("J.*\d[0-35-9]-\d\d-\d\d")
      Dim string1 As String = "11-11-75" & _
         vbCrLf & "is 11-05-68" & vbCrLf & _
         "asdf 04-18-73" & vbCrLf & _
         "fdsa 12-27-77"
      
      For Each myMatch In expression.Matches(string1)
         Console.WriteLine(myMatch.ToString())
      Next
   End Sub 
End ModuleRegex.CompileToAssembly
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim numPattern As String = _
           "[-+]?([0-9]*\.)?[0-9]+([eE][-+]?[0-9]+)?"
        Dim wordPattern As String = "\w+"
        Dim whichNamespace As String = "NumbersRegex"
        Dim isPublic As Boolean = True
        Dim compNumbers As New RegexCompilationInfo(numPattern, _
           RegexOptions.rupiled, "RgxNumbers", _
           whichNamespace, isPublic)
        Dim compWords As New RegexCompilationInfo(wordPattern, _
           RegexOptions.rupiled, "RgxWords", whichNamespace, _
           isPublic)
        Dim compAll() As RegexCompilationInfo = _
           {compNumbers, compWords}
        Dim whichAssembly As New _
           System.Reflection.AssemblyName("RgxNumbersWords")
        Regex.rupileToAssembly(compAll, whichAssembly)
    End Sub
End ClassRegex Matches
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim quote As String = "AA BB in"
        Dim count1 As Integer
        Dim count2 As Integer
        Dim count3 As Integer
        count1 = Regex.Matches(quote, "(in)+").Count
        count2 = Split(quote, "in").Length - 1
        Dim content As String = "in"
        Dim position As Integer = -content.Length
        Do
            position = quote.IndexOf(content, position + content.Length)
            If (position < 0) Then Exit Do
            count3 += 1
        Loop
        Console.WriteLine(String.Format( _
            "{0}{3}{1}{3}{2}", count1, count2, count3, vbNewLine))    
    
    End Sub
End Class1 1 1
Regex("\w+")
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim quote As String = "The important thing is not to " & _
           "stop questioning. --Albert Einstein"
        Dim parser As New Regex("\w+")
        Dim totalMatches As Integer = parser.Matches(quote).Count
        Console.WriteLine(quote & vbNewLine & "Number words: " & _
           totalMatches.ToString)
    End Sub
End ClassThe important thing is not to stop questioning. --Albert Einstein Number words: 10
Replace first 3 digits
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
    
       Console.WriteLine(New Regex("\d").Replace("1, 2, 3, 4, 5, 6, 7, 8", "digit", 3))
    End Sub
End Classdigit, digit, digit, 4, 5, 6, 7, 8
String split at commas
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
    
       Console.WriteLine(Regex.Split("1, 2, 3, 4, 5, 6, 7, 8", ",\s*"))
    End Sub
End ClassSystem.String[]
Using Regex method Replace: Replace one string with another
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
    
       Console.WriteLine(New Regex("stars").Replace("This sentence ends in 5 stars *****", "carets
))
    End Sub
End ClassThis sentence ends in 5 carets *****
Using Regex method Replace: substituted for *
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
       Console.WriteLine(Regex.Replace("This sentence ends in 5 stars *****", "\*", ""))
    End Sub
End ClassThis sentence ends in 5 stars ^^^^^
Word count
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim quote As String = "q d e w "
        Do While (quote.IndexOf(Space(2)) >= 0)
            quote = quote.Replace(Space(2), Space(1))
        Loop
        Dim wordCount As Integer = Split(quote, Space(1)).Length
        Console.WriteLine(quote & vbNewLine & "Number of words: " & wordCount.ToString)   
    
    End Sub
End Classq d e w Number of words: 5
Word count: Regex.Matches(quote, "\w+")
Imports System.Text.RegularExpressions
Public Class Tester
    Public Shared Sub Main
        Dim quote As String = _
            "The important thing" & vbNewLine & _
            "is not to stop questioning." & vbNewLine & _
            "--Albert Einstein" & vbNewLine
        Dim numWords As Integer = Regex.Matches(quote, "\w+").Count
        Console.WriteLine(numWords)
    End Sub
End Class10
