【发布时间】:2013-06-09 11:55:11
【问题描述】:
我正在开发一个程序来检查给定字符串中是否存在特定字符串:即一个字符串是否是另一个字符串的子字符串。
例如:
1)字符串:YoungPeople --> 要检查的子字符串:ungPeo
The output should return true.2)String:你好,你好吗? --> 要检查的子字符串:l*are
The output should return true.
我使用了基于朴素的搜索算法,它对于第一个输入非常有效。
但我在第二种输入中遇到了问题,其中星号 (*) 应被视为正则表达式:即匹配零个或多个字符。
我应该如何检查带有 * 符号的子字符串?
我应该尝试使用相同的简单算法来搜索 * 之前的字符和之后的字符串吗?或者有没有更好的方法来解决这个问题?
【问题讨论】:
-
您已经提供了一个很好的方法。试试看有没有问题。
-
我认为这不是一项简单的任务。您应该检查两种可能性 - 您正在阅读 * 或具体文本。最好的方法是使用实际的正则表达式库。
-
strchr 不适合你?
-
你的意思是通配符吗? Windows API PathMatchSpec() 可以做到这一点,或者在 linux 上使用 fnmatch()
-
这看起来更像是全局模式匹配而不是正则表达式。