2015-10-16 84 views
0

我正在阅读Robert Sedgewick中的字符串算法。字符串正则表达式算法

这是关于本书正则表达式的文本片段。

在许多应用程序中,我们需要进行子串搜索,其中 比有关要找到的模式的完整信息少。

文本编辑器的用户可能希望
i。指定一个模式的一部分,或者
ii。以指定可以匹配几个不同单词的模式,或者iii。指定模式数量中的任何一个将会执行。

我的问题是作者用上述三个愿望来表达什么。我正在寻找上述每个示例。

回答

0

作者正在讨论什么时候您要搜索某条数据,但是您有关于数据的不完整信息。如果你没有完整的信息,你不能直接搜索它,你必须使用某种模式来匹配数据。按规则而不是数据本身。例如:如果您知道文件中存在今天的日期,则您拥有所有信息,因此您可以搜索2015-10-16。但是,如果您的信息不完整,则必须采用某种模式。

  1. 指定模式

你知道有今年的日期中的一部分,但不知道这一天或一个月内(不完整的信息),你必须能够指定一部分信息的模式为2015-*-*

  • 指定可以匹配一些不同的话
  • 你知道有这十年来的一个日期,但不知道这一年,一天或图案月,你必须能够以指定的图案20*-*-*(注意,部分20*将匹配不同“字” 2001,2002,...)

  • 以指定的任一模式的数量会做。
  • 你知道今年或以前有一个日期,但不知道休息。一个模式可能像2014-*-*|2015-*-*,这提供了在匹配的替代品。

    我不认为作者给出的例子涵盖了所有的可能性,但他试图传达的是当你没有所有的信息时,你必须能够使用你拥有的信息创建一个包含规则的模式,允许您收集剩余的信息(当天),同时仍然以多种方式部分或多种方式尊重您拥有(年)的信息