Mathematica 11.x,74个字节
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&
在整个图中,其中#
表示输入字符串,并且
StringCases[#,<pattern>]
查找与模式匹配的输入字符串的子字符串
StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")
此模式需要匹配项,x
必须从字符串的开头开始,并且必须满足以下条件:(1)匹配项不是整个输入字符串,以及(2)如果我们将输入字符串中匹配项的出现替换为空字符串我们获得空字符串。最后,将匹配列表与空白列表进行比较,
{}!=
是 True
,如果匹配的列表不为空并且False
如果匹配的列表是空的。
测试用例:
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["aa"]
(* True *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["aaa"]
(* True *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["abcabc"]
(* True *)
和
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["aba"]
(* False *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["ababa"]
(* False *)
{}!=StringCases[#,StartOfString~~x__/;(x!=#&&StringReplace[#,x->""]=="")]&["weqweqweqweqweqw"]
(* False *)