2009-07-31 45 views
1

正則表達式如何處理?正則表達式如何處理?

+0

這需要更多的上下文。有許多不同的技術。 – 2009-07-31 20:46:16

+2

我認爲你需要在這裏更具體,除非你想得到像「電腦那樣」的答案。 – 2009-07-31 20:47:12

回答

6

正則表達式描述state machine的規則集。它通常一次移動一個字符串中的一個字符,根據前一個字符發生的情況以及正則表達式中的內容做出決定。

任何正則表達式也可以寫成一個字符串一個字符的循環。其中一些可能相當簡單,但正則表達式的功能可以在看起來像一個簡單的正則表達式時找到,只需要一些反向和子組就可以在自己的狀態機上重新生成一千行代碼。

2

這個問題非常廣泛。這不是一個完整的答案,但是Jeff Moser在他的博客上有一篇很好的文章,講述了.NET的正則表達式過程:How .NET Regular Expressions Really Work

我懷疑其他答案會揭示正則表達式的其他區域,除非您的問題更新爲更加詳細一些。

0

儘管每個人都在這裏說,有關國家機器,你可以使用遞歸若干技術問題探討用很少的狀態寫一個非常簡單的正則表達式識別器。 Brian Kernighan的兩本書中的軟件工具Pascal和The Practice Of Programming中都有這些例子。