Verbal Expression

Posted on Posted in DevOps

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é.