2010-09-13 5 views
2

J'ai essayé beaucoup de choses, mais je ne peux pas comprendre comment aller chercher un match sur la chaîne suivanteExpression régulière Question

Voici mon exemple. Btw en utilisant le cadre compact 2.0 si c'est important.

string received = "AT+CMEE=1\r\r\nOK\r\n"; 

Regex regex = new Regex(received , RegexOptions.Multiline); 

// I have tried many things 
Match match1 = regex.Match(".*AT\+CMEE=1\r\r\nOK\r\n.*"); 
Match match2 = regex.Match(".*AT\\+CMEE=1\r\r\nOK\r\n.*"); 
Match match3 = regex.Match(".*OK.*"); // this one completely confuses me. 

Qu'est-ce que je fais mal? S'il vous plaît aider.

Merci à l'avance.

+3

Je pense que vous modèle confus et chaîne à faire correspondre. –

+0

Merci beaucoup. Merci – Chauncat

Répondre

0

Vous avez besoin soit d'échapper à des caractères spéciaux tels que + et \ comme ceci:

"AT\+CMEE=1\\r\\r\\nOK\\r\\n" 

ou vous pouvez préfixe chaîne avec @ pour le rendre littéral:

@"AT+CMEE=1\r\r\nOK\r\n" 

test Essayez à http://regexlib.com/RETester.aspx

1

Expresso peut vous aider à tester vos expressions régulières et générer le C# ou un code VB.NET pour vous. Dans ce cas, il aurait échappé à la chaîne pour vous.

http://www.ultrapico.com/Expresso.htm

post-scriptum Je ne suis pas affilié à Ultrapico, je viens d'utiliser Expresso pour construire et tester des expressions régulières de temps en temps.

+0

il est quelque chose que je l'utilise tout le temps. Excellent outil – Chauncat