请考虑字母V = {0,1,…,9}和语言L,该语言由以下所有字符串组成 V,代表大于798的所有整数(例如,字符串799、890, 2345,777777属于语言L,而字符串1,42,711,798不属于)。提供 生成所有语言L的所有字符串的正则表达式
答案 0 :(得分:-1)
使用完全经典的正则表达式(例如,析取,并置和小星):
(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
匹配)。< / p>