C注释正则式及其效率思考
下面给出C注释正则式与自动机相互转换的例子。两个例子都不考虑注释标识符在字符串常量中的情形(如:const char* start = "/*", *end = "*/";)。
自动机转换成正则式:
识别C注释的自动机很容易画出来(^/*表示除'/'及'*'以外的所有字符):
图1
TMS_LI的正则为:/\*[^*]*\*(\*|[^/*][^*]*\*)*/
正则式转换成自动机:
/\*[^*]*\*+([^/*][^*]*\*+)*/
为验证其正确性,必须正则式转换成自动机。
图2
显然,这两个自动机是等价的。这也验证了这两个正则式的正确性。
相关推荐
RuoShangM 2020-06-17
qidu 2020-06-08
杨德龙 2020-11-11
不要皱眉 2020-10-14
满地星辰 2020-09-16
梦的天空 2020-08-25
lrjnlp 2020-07-19
qidu 2020-07-05
flyingssky 2020-07-05
flyingssky 2020-06-27
天高任鸟飞 2020-06-13
Darklovy 2020-06-11
Darklovy 2020-06-07
jyj00 2020-06-06
flyingssky 2020-06-04
山水沐光 2020-05-26
山水沐光 2020-05-25