2009-07-31 120 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中都有这些例子。