Jag söker ett regexp-mönster som ska regera på följande:
(ABC)
(abc)
(A/B/C)
(a/b/c)
Men inte om man har flera / efter varadra, som det är nu har jag tryckt ihop ett som gör det här, men reagerar på flera / vilket jag inte vill...tacksam för svar
Med utvecklingsmiljö menar nog Marcus om du har använt Visual C++, eller om du programmerar i någon annan miljö.
Du skulle kunna använda följande uttryck: "(A/*B/*C)|(a/*b/*c)"
Nu har jag utgått från att parenteserna inte ingick i det eftersökta uttrycket. De parenteser du ser i regexp-strängen, finns där för att innesluta substrängar. Om det nu är så att parenteserna faktiskt ingår, då är följande uttryck lämpligare:
"(\(A/*B/*C\))|(\(a/*b/*c\))"
där "\" före parenteses gör att den tolkas som just en parentes i strängen.
Så kan man göra i VB.Net. Hur det ser ut i andra miljöer vet jag inte.
Det är inte jag som har utvecklat applikationen så jag vet inte vad det är för regexp som gäller. dock så ska den tolka ett regexp som är inskrivet i en XML-fil..men det jag har nu ser ut så här (parenteser inräknade)
\([Aa]\/*[Bb]\/*[Cc]\)
Men som sagt då godkännes (a/////////////////////////b/c) och liknande
* betyder oftast noll eller flera
? betyder oftast noll eller en
Så testa med följande:
\([Aa]\/?[Bb]\/?[Cc]\)
Det kommer dock fortfarande tillåta avarter som t.ex.:
(A/bC)
Är inte det tillåtet så måste du vara mer specifik. Antingen m.h.a. utökade reguljära uttryck (som skiljer sig mycket beroende på miljö, vilket gör det svårt att ge ett exempel i ditt fall), eller att helt enkelt ange exakt vilka kombinationer som skall vara tillåtna:
\((ABC)|(abc)|(A\/B\/C)|(a\/b\/c)\)
(Har tyvärr ingen möjlighet f.n. att testa så att det fungerar.)