我正在阅读Robert Sedgewick的字符串算法。
以下是本书中正则表达式的文本摘要。
在许多应用程序中,我们需要稍微进行子字符串搜索 关于要找到的模式的完整信息。
文本编辑器的用户可能希望
一世。仅指定模式的一部分,或者 II。指定可以匹配几个不同单词的模式,或者 III。指定多个模式中的任何一个都可以。
我的问题是作者对上述三个愿望的意思。我正在为上述每一个寻找一个例子。
答案 0 :(得分:0)
作者正在谈论什么时候搜索一条数据,但是你有关于数据的不完整信息。如果您没有完整的信息,则无法从字面上搜索它,您必须使用某种模式来匹配数据。按规则而不是数据本身。
例如:如果您知道文件中存在今天的日期,则您拥有所有信息,因此您可以搜索2015-10-16
。但如果您的信息不完整,则必须应用某些模式。
您知道今年有一个日期,但不知道日期或月份(不完整的信息),您必须能够使用您拥有的信息部分指定模式2015-*-*
。< / p>
你知道这个十年的日期,但不知道你必须能够指定模式的年,日或月20*-*-*
(请注意,20*
部分将匹配不同“words”2001,2002,...)
你知道今年或之前有这个日期,但不知道那么休息。模式可能类似于2014-*-*|2015-*-*
,这为匹配提供了替代方案。
我不认为作者提供的例子涵盖了所有可能性,但他试图传达的是,当你没有所有信息时,你必须能够使用你所拥有的信息。创建一个带有规则的模式,允许您收集剩余的信息(日期),同时仍然以部分或多种方式尊重您拥有的信息(年)