Všichni programátoři to známe. Regulární výrazy… jsou v každém jazyku a jsou velmi důležité. Je to opravdu mocný nástroj, který Vás zároveň dokáže pořádně vyškolit a pozlobit. Na druhou stranu Vám může ušetřit hromadu práce. Ale buďme upřímní, pokud je nepoužíváte na denní bázi, tak občas zapomeneme a vzpomínání přece jenom trochu bolí. Regulární výrazy nejsou žádná věda, ale pokud se rozvášníte a napíšete nějaký velmi dlouhý výraz, může Vám jeho úprava za půl roku přinést nemalý bolehlav 🙂
Verbal Expression aneb sexy regulární výrazy
Co říkáte na ^http(s)?://([\w-]+.)+[\w-]+(/[\w- ./?%&=])?$ Ostřílený profík na regulární výrazy hned ví, o co se jedná, ale běžný programátor potřebuje chvilku, aby se podíval na syntaxi a trochu se zamyslel. Ale co kdyby to mohlo být trochu více sexy. Co takhle třeba …
[TestMethod] public void TestingIfWeHaveAValidURL() { // Create an example of how to test for correctly formed URLs var verbEx = new VerbalExpressions() .StartOfLine() .Then( "http" ) .Maybe( "s" ) .Then( "://" ) .Maybe( "www." ) .AnythingBut( " " ) .EndOfLine(); // Create an example URL var testMe = "https://www.google.com"; Assert.IsTrue(verbEx.Test( testMe ), "The URL is incorrect"); Console.WriteLine("We have a correct URL "); }
Za mě je tohle mnohem více sexy. Kombinace fluent api a regulárních výrazů mě velmi baví. Přece jenom je to pro člověka mnohem více čitelné, než jakýkoliv regulární výraz. Vřele doporučuji se podívat na https://github.com/VerbalExpressions implementace je dostupná pro nejrůznější jazyky, takže určitě si každý přijde na své.