有限状态机是文本处理的利器,关于有限状态机的理论比较复杂,但在实际文本处理应用中,
只需要对有限状态机的模型有所了解,搞清楚状态转移关系即可快速的写出程序。
如对网络配置文件进行解析(与/etc/sysconfig/network-scripts/ifcfg-eth0文件类似的格式)
格式如下:(其中以#开头的行为注释行,有效的配置字符为数字,字母和点号)
#this is a net work config file
IPADDR = 192.168.1.71
NETMASK = 255.255.255.0
GATEWAY = 192.168.1.1
我们可以定义四种状态:
1. 初始状态
2. KEY状态,读到配置键的时候进入该状态
3. VALUE状态,读到配置值的时候进入该状态
4. DELIM状态,即key与value之间的分隔符
状态转移关系图如下:(对于xml,ini等配置文件的解析,状态转移图复杂得多)
具体实现如下:(C语言)
parse_ini.rar (ini文件解析器)