在另一个文本中搜索具有相同顺序字符的文本

search a text in another text with the characters in the same order

我想搜索一个文本 ('needle'),如果它存在于另一个文本 ('haystack') 中,并且满足以下两个条件:

  1. 'needle' 的所有字符必须在 'haystack' 中以 相同的顺序
  2. 'haystack'
  3. 中 'needle' 的后续字符之间可以有任意且不受限制的其他字符

示例:

此外 'cde' 不是一个常量字符串,而是一个遍历列表的变量。

任何 python 或 R 或​​ bash 中的优雅解决方案将不胜感激。

正则表达式是你的朋友。 http://en.m.wikipedia.org/wiki/Regular_expression

https://docs.python.org/2/library/re.html

我可以建议您使用动态生成的正则表达式,如下所示:

/.*c.*d.*e.*/

我在 python 中得到了解决方案:

re.match('.*'+'.*'.join(list(needle))+'.*',(haystack))