2016-03-29 14 views
1

Ich habe eine Reihe von TextC# Regex Spiel Exact Wort in String

string a = "Not Approved;Review Not Required;Terminated;Draft"; 
string input = "Approved"; 

und mein Eingang „Approved“, und senden Sie es mir nach wie vor falsch (das ist, was ich will), aber wenn meine Eingabe ist "Beendet" gibt es immer noch falsch (was falsch ist).

Regex.Match(a, input + @"^\b").Success 

Regex.match(a,@"\b" + input + @"\b".Success 

Beide funktioniert nicht wie das, was ich suche

+0

Was ist Ihr Zustand für 'true' und' false'? –

+1

Warum verwenden Sie eine Regex und nicht nur enthält? 'a.Contains (Eingabe)'? Angenommen, Sie möchten nur überprüfen, ob in a eine Eingabe vorhanden ist. – Jacobr365

+0

@ Jacob365 Weil er möchte, dass "genehmigt" nicht "nicht genehmigt" –

Antwort

3

Warum ändern nicht nur die regulären Ausdruck ein bisschen? Prüfen Sie, ob ';' nicht für '\b'

string a = "Not Approved;Review Not Required;Terminated;Draft"; 
    string input = "Approved"; 

    // do not forget to Escape for arbitrary input 
    // true for "Terminated", false for "Approved" 
    Boolean result = Regex.IsMatch(a, @"(^|;)" + Regex.Escape(input) + @"($|;)");