簡體   English   中英

DFA和正則表達式

[英]DFA and Regular Expression

句柄處於“關閉”狀態時,程序不應寫入連接句柄。 一開始,連接將處於“已連接”狀態,但是當“斷開連接”事件后接着“寫入”時,它可以移至“錯誤”狀態。 “重新連接”事件將連接移回“已連接”狀態,其中允許“寫入”操作。 多次斷開連接,重新連接和寫入是多余的,這意味着第二次連續操作無效。

將其建模為正則表達式和DFA?

我將DFA視為4種狀態:連接,斷開連接,寫入,錯誤以及從中進行的三種可能的移動(連接,寫入和斷開連接),但不知道正則表達式。

我對它的閱讀略有不同,具有三種狀態:

  1. 打開
  2. 關閉
  3. 錯誤

和三個字符/過渡

  1. 斷開
  2. 重新連接

使用DFA DFA

在這里,我假設我們不能讓套接字保持打開狀態,所以只有closed是接受狀態

我們可以忽略error (沒有辦法退出error狀態,因為我們要使這些字符串失敗)

假設我們從open狀態開始,需要接受任意數量的writereconnect轉換,然后一個或多個disconnect轉換來斷開連接

[wr]*d+

但是我們也可以從斷開狀態重新連接。 請注意,上面接受r作為第一個字符。 我們最后的正則表達式是

([wr]*d+)+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM