正则表达式如何处理?正则表达式如何处理?
1
A
回答
6
正则表达式描述state machine的规则集。它通常一次移动一个字符串中的一个字符,根据前一个字符发生的情况以及正则表达式中的内容做出决定。
任何正则表达式也可以写成一个字符串一个字符的循环。其中一些可能相当简单,但正则表达式的功能可以在看起来像一个简单的正则表达式时找到,只需要一些反向和子组就可以在自己的状态机上重新生成一千行代码。
6
正则表达式可以被建模为Deterministic Finite State Machine。如果你想“处理”一个,这可能是一个很好的开始。
2
这个问题非常广泛。这不是一个完整的答案,但是Jeff Moser在他的博客上有一篇很好的文章,讲述了.NET的正则表达式过程:How .NET Regular Expressions Really Work
我怀疑其他答案会揭示正则表达式的其他区域,除非您的问题更新为更加详细一些。
2
这将取决于您所指的是哪种正则表达式实现。
有在正则表达式引擎使用2种共同但有不同的技术:
这MSDN article解释了各种发动机实施了多项技术,然后接着解释说:.NET的实现以及为什么微软选择他们为.NET选择的东西。
他们会在您看到列出的各种文章here中更加深入。
1
0
尽管每个人都在这里说,有关国家机器,你可以使用递归若干技术问题探讨用很少的状态写一个非常简单的正则表达式识别器。 Brian Kernighan的两本书中的软件工具Pascal和The Practice Of Programming中都有这些例子。
相关问题
- 1. 正则表达式处理
- 2. GAE如何处理正则表达式URL处理程序?
- 3. 正则表达式处理HTML
- 4. 正则表达式来处理cookies
- 5. 处理Ping数据(正则表达式)
- 6. 正则表达式:处理参数
- 7. 正则表达式或批处理
- 8. 正则表达式 - 不处理DLE
- 9. 红宝石正则表达式处理
- 10. Java的正则表达式处理
- 11. 处理多个正则表达式组
- 12. 在ruby中处理正则表达式
- 13. 通过正则表达式处理'#'
- 14. 正则表达式和文件处理
- 15. PHP正则表达式处理括号
- 16. 无法处理此正则表达式
- 17. 如何正确处理正则表达式匹配
- 18. 如何处理具有多种模式的正则表达式?
- 19. 在正则表达式中处理表达式?只有
- 20. 正则表达式理解
- 21. 正则表达式理论
- 22. 正则表达式代理
- 23. 如何处理在Python中具有unicode的正则表达式?
- 24. 如何在Scala中应用正则表达式处理输出?
- 25. 如何使用正则表达式处理文本文件?
- 26. 如何处理python中的正则表达式?
- 27. 我该如何处理这个正则表达式问题?
- 28. 正则表达式在Java中:如何处理新行
- 29. 如何在Java中处理以下PHP正则表达式?
- 30. 如何处理与边界'\\ G'相关的正则表达式?
这需要更多的上下文。有许多不同的技术。 – 2009-07-31 20:46:16
我认为你需要在这里更具体,除非你想得到像“电脑那样”的答案。 – 2009-07-31 20:47:12