When you start learning a new programming language, maybe you had been learning follow those steps: variable, assignment, string, operators… One major theme you need to focus is . Fox example: get first name from full name, find and censor all mobile numbers in message,… string operations Along the operation we usually need to process some common procedure. One repeated procedure is finding a substring and implement some operations over the substring. Maybe you had done like something like this in the very beginning of your learning path. ( * string) { ( i = 0; i < strlen(string); i++) {// logic for checking string pattern...} ...} int checkMatchStubPattern char for int return Not a wrong way, but a time consuming. You must change the checking logic in every case. More code, more bug and of course hard for maintainance. Luckily, come as a hero to solve those kind of problems: find, input validation… As a confirmation for the usage of , every programming language supports for string operations. Regular Expression - Regex Regex Regex Regular expression is a sequence of characters that define a search pattern. This pattern is then used by string searching algorithms for “find” or “find and replace” operations on strings, or for input validation. (Source: Wikipedia) is an efficient tool to solve that problem; but it comes at a price. It is really hard to read and understand (but ). First try to read the example below. Regex not hard to learn Because of complicated syntax, it is very hard to read and understand . Furthermore, you seems not to work with too often. ROI (return-on-investment) is too low; almost common you need to use can be found on the internet (password, url, IP address,…). Are you willing to spend some weeks for learning something that you only use 4 or 5 times a year? Or just skimming over some sites for the result in around 5 minutes? That way of thinking make developers tend to google some and modify to fit into their needs. Sometime it can cost some hours to a whole day for the repetition process of searching - modifying… Regex Regex Regex Regex In every angel a demon hides… solve the problem; but how about the problem of ? Fortunately, it can be solved with . Try to look at this example. Regex string operation Regex [Verbal Expressions](http://verbalexpressions.github.io/) VerEx().startOfLine().then('http').maybe('s').then('://').anythingBut(' ').endOfLine(); I hope that you will not be frustrated after reading this example. The above is defined following this rule: Verbal Expressions The URL must start with either “http” or “https”. The URL must then have “://“. The URL can have anything following “://“, as long as is not a space. The generated from the above code is: . A bit diffenret but the functional is the same. You can find the implementation of in several languages . Regex /^(?:http)(?:s)?(?:\:\/\/)(?:[^ ]*)$/ Verbal Expressions here VerbalExpressions solve the biggest probelem of . It is readable and easy-to-understand regular expressions. In my opinion, the transition from to is great as the movement from to . Regex Regex VerbalExpressions SQL ORM Anyways, still have some drawbacks. You need to install a new library to your project, sometimes it is quite painful (e.g. you client, manager… don’t think it’s neccessary). In that case, you can go to ; write the code and it will generate the for you. VerbalExpressions VerbalRegex Regex Online tool for generating Regex Try this tool by accessing . verbalregex.com Conclusion is not a replacement of ; but an easy way to write readable . It can ease the pain of , and actually make writing expressions fun again. But keep in mind that still seems to be the best choice in some complicated cases. VerbalExpressions Regex Regex Regex Regex