2017-07-27 5 views
-1

Ich habe Schwierigkeiten, einen Regex-Ausdruck zu bilden, um zu prüfen, ob eine zufällige Wörterfolge eine E-Mail-Adresse enthält. Zum Beispiel:Überprüfen Sie, ob die Wortkette eine E-Mail-Adresse enthält

string str = "Hello, thank you for viewing my ad. Please contact me on the phone number below, or at [email protected]" 

= Spiel

string str - "Hello, thank you for viewing my ad. Please contact me on the phone number below" 

= kein Spiel

Wie kann ich überprüfen, ob eine Zeichenfolge enthält eine E-Mail-Adresse Regex? Jede Hilfe würde sehr geschätzt werden.

+9

Welchen Regex-Ausdruck haben Sie ausprobiert? – Sheldon

+4

Verwandte https://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address?rq=1 – Scroog1

Antwort

0

Es gibt viele RegEx-Varianten zum Abrufen einer E-Mail-Adresse, die sich durch Strenge unterscheiden. Folgen Sie einfach dem Link und wählen Sie den passenden aus. http://www.regular-expressions.info/email.html

Für die meisten Bedürfnisse der nächste Muster kann

Regex pattern = new Regex(@" 
          \b     #begin of word 
          (?<email>   #name for captured value 
           [A-Z0-9._%+-]+ #capture one or more symboles mentioned in brackets 
           @    #@ is required symbol in email per specification 
           [A-Z0-9.-]+  #capture one or more symboles mentioned in brackets 
           \.    #required dot 
           [A-Z]{2,}  #should be more then 2 symboles A-Z at the end of email 
          ) 
          \b     #end of word 
            ", RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase); 

      var match = pattern.Match(input); 
      if (match.Success) 
      { 
       var result = match.Groups["email"]; 
      } 

Denken Sie daran, verwendet werden, dass dieses Muster nicht zu 100% zuverlässig ist. Es funktioniert perfekt mit Zeichenketten wie

string input = "This can be recognized as email [email protected]"; 

Aber in String

string input = "This can't be recognized as email [email protected]@gmail.com"; 

Es fängt „[email protected]“ trotz der Tatsache, dass diese E-Mail pro Spezifikation falsch ist.

+0

Link nur Antworten sind keine Antwort. Fügen Sie einen relevanten Text aus dem Link in Ihre Antwort ein, damit dieser weiterhin nützlich ist, wenn die Verknüpfung unterbrochen wird. – Tezra

Verwandte Themen