|
此处某Regex的语言是指能被其接受的字符串的集合,即不将接受时Regex中捕获组的值考虑为语言的一部分。因此暂时不用关心贪婪匹配的问题。Regex的语言有如下性质:
引理
存在m>0使得\(w = x_0 y x_1 y \ldots
x_m\)
\(| x_0 y | \leqslant N\)
\(| y | > 1\)
对任意正数j,\(x_0 y^j x_1
y^j \ldots x_m\)也被a接受
引理
定理
定理
以上证明见[1]。
给定字符串w判断是否可被Regex a接受,即Regex语言的成员问题是可判定的。但是Aho[3]证明了:
定理
此外还有:
定理
定理
RefWord是关于Regex的形式语言模型。
定义
定义
删除w中所有无定义的变量x
如果w中有引用,转3,否则结束。
将w中所有的纯引用,和指向此引用的变量出现替换为引用的内容,转2。
定理
定义
语言L称为是ref-regular语言,如果L是某个regular ref-language的解引用。称ref-regular的语言类为ref-REG
定理
MFA是关于Regex的自动机模型:
定义
M的格局定义为\((q, w, (u_1, r_1), \ldots, (u_k, r_k))\),其中q和w为当前状态和剩余输入串,\(u_i\)是\(\Sigma\)上的字符串,\(r_i \in \{ O, C \}\),其中O和C分别表示缓冲区处于打开和关闭状态。
给定缓冲区状态r和指令\(s \in \{ o, c, \diamond \}\),定义:
如果格局\(c = (q, w, (u_1, r_1), \ldots, (u_k, r_k))\),\(c' = (q', w', (u'_1, r'_1), \ldots, (u'_k, r'_k))\),则\(c \vdash c'\)当且仅当\((q', s_1, s_2, \ldots, s_k) \in \delta (q, b)\),\(w = v w'\),并且或者\(v = b\)且\(b \in (\Sigma \cup \{ \varepsilon \})\),或者\(v = u_b, r_b = C\)且\(b \in \{ 1, 2, \ldots, k \}\).此时,\(r_i'\)如上定义,且对所有缓冲区都有:
输入串w能被M接受,当且仅当初始格局\((q_0, w, (\varepsilon, C), \ldots, (\varepsilon, C)) \vdash^{\ast} (q, \varepsilon, (u_1, r_1), \ldots, (u_k, r_k))\),其中q是终止状态。定义M的语言为能被M接受的字符串集合。
定理
定义
注意
定义
定理
定理
以上证明见[4]
MFA不一定是完备的。TMFA是在MFA的基础上增加陷门状态trap,并规定在缓冲区匹配失败后进入trap,trap只有自环转移。
引理
DTMFA的定义和DMFA相比也有改变,最大的不同是允许空转移。DTMFA的性质也和DMFA不同
引理
定理
确定型Regex的严格定义见[2]
定义
定理
定理
定理
定理
定理6和7对DRX同样适用。
[1] Cezar Câmpeanu, Kai Salomaa, 与 Sheng Yu. A FORMAL STUDY OF PRACTICAL REGULAR EXPRESSIONS. 14(06):1007–1018.
[2] Dominik D. Freydenberger 与 Markus L. Schmid. Deterministic regular expressions with back-references. 105:1–39.
[3] Handbook of Theoretical Computer Science. Volume A: Algorithms and Complexity, ().
[4] Markus L. Schmid. Characterising REGEX languages by regular languages equipped with factor-referencing. 249:1–17.