繁体   English   中英

我想要正则表达式(自动机理论)

[英]I want regular expression (theory of automata)

考虑字母表 V={0, 1, …, 9} 和语言 L,它由 V 的所有字符串组成,表示所有大于 798 的整数(例如,字符串 799、890、2345、777777 属于语言 L,而字符串 1、42、711、798 则不然)。 提供生成语言 L 的所有字符串的正则表达式

完全经典的正则表达式(即析取、串联和 kleene 星):

(799|(8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*|(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*)

如果您允许使用典型的正则表达式速记(但保持在理论范围内,即常规语言),则可以简化为:

799|[89]\d{2,}|[1-9]\d{3,}

您可以匹配数字 799、以 8 或 9 开头的三位数字或以除 0 以外的任何数字开头的四位(或更多)数字(以禁止0023匹配)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM