理论知识
每一个正则表达式都通过一种叫做有限自动机的状态转换图表,被编译成识别器。一个有限自动机可以使确定性的也可以是不确定性的。不确定性的意思是一种输入可能会产生多种输出状态。识别器是一种程序,它接收一个字符串x
并且能够分辨出x
是何种语言写的。
语法能够以一种格式化的语言为字符串生成一系列产生式规则,产生式规则描述了根据词法生成有效字符串的方法。语法器只能描述字符串的结构,不能描述一个字符串的含义或者描述该字符串能在什么上下文中用来做什么。要注意,语法是定义或者使用正则表达式的核心。
尽管正则表达式可以用来解决棘手的问题,但是不要任何问题都使用正则表达式,一定要在正确的地方选择正确的工具!
接下来的这一小节将会展示三个正则表达式和模式匹配的例子。