2010-01-10 6 views
7

Jestem nowy w wyrażeniach wyrażeń regularnych, więc przepraszam, jeśli jest to naprawdę noob pytanie.Jak sprawdzić, czy wyrażenie Regex pasuje cały ciąg w języku C#?

Mam wyrażenie regularne ... Chciałbym sprawdzić, czy ciąg znaków pasuje do wyrażenia regularnego w całości, bez wyrażenia regularnego pasującego do jakichkolwiek podzbiorów ciągu.

Na przykład ...

Jeśli moja ekspresja regex szuka mecz \ s \ s *, powinien on powrócić mecz jeśli ciąg jest porównanie go to „A”, ale jeśli porównuje się do ciągu znaków "AB", nie powinien zwracać dopasowania.

Każda pomoc byłaby doceniona? Koduję w C#.

+1

Możesz wypróbować tester regex online na http://regexpal.com/ najprostszy wzór regex C# powinien być w porządku, aby być poprawnie testowane. –

Odpowiedz

16

Normalnie będzie używać end end początek zakotwicza ^ i $ respecitvely:

^\s*A*\s*$ 

Należy pamiętać, że jeśli regex silnik obsługuje multi-line, to może również przechwytywać ciągi obejmujących wiele wierszy, jak długo ponieważ jedna z tych linii pasuje do wyrażenia regularnego (od ^, a następnie zakotwicza po dowolnym znaku nowej linii lub ciągu znaków i $ przed jakimkolwiek znakiem nowego wiersza lub końca łańcucha). Jeśli używasz tylko regex w pojedynczej linii, nie będzie to problemem.

Jeśli chcesz się upewnić, że wejście multi-line jest tylko jedna linia składająca się z Twoim wzorem, można użyć \A i \Z jeśli jest obsługiwany - to znaczy początek i koniec ciąg niezależnie od nowej linii.

+0

Dziękuję ... to było to. –

Powiązane problemy