【发布时间】:2021-09-29 23:41:50
【问题描述】:
我想查找是否存在字符串“chef”的子字符串,但在另一个长度 > 1 的给定字符串中按顺序排列。
所以基本上我们希望字符串 ch, he, ef, che, hef 或 chef 存在于给定的字符串中。
前任:
1> kefaa
这里我们有 ef ,它是 ''chef'' 的一部分,所以它是一个有效的字符串。
2> 弗拉塞克
这里我们有 fh 哪些字符存在于 'chef' 但顺序不正确因此无效。
我有这个可以工作的代码,但是在这里手动添加子字符串很容易,因为字符串 'chef' 的可能性要少得多,但我想要一个适用于任何给定字符串的代码。
import re
pattern = r"(ch|he|ef|che|hef|chef)"
s = input()
res = re.search(pattern, s)
if bool(res):
print('YES')
else:
print('NO')
附言对不起,如果这个问题已经被问到并解决了,我找不到它。
谢谢。
【问题讨论】:
-
您可以使用
?将每个字符设为可选,然后检查字符串是否为空。 -
@RyanSchaefer 但是字符串 'fhlasek' 也将被视为有效。我们不需要那个。
-
如果你只是只想找到if有子串,那么检查长度大于2的子串是没有意义的。跨度>
-
@Armali 是的,但提到它是为了确保我们不只匹配一个普通字母。
标签: python regex string substring