你正在使用错误的工具来完成工作.这不是正则表达式能够轻松处理的东西.幸运的是,没有正则表达式,这样做相对容易.您只需计算两个字符串中每个字母的出现次数,并比较两个字符串之间的计数 - 如果对于字母表中的每个字母,第一个字符串中的计数至少与第二个字符串中的计数一样大,那么你的标准就满足了.由于您没有指定语言,因此这里的伪代码答案应该可以轻松翻译成您的语言:
bool containsParts(string1, string2) { count1 = array of 26 0's count2 = array of 26 0's // Note: be sure to check for an ignore non-alphabetic characters, // and do case conversion if you want to do it case-insensitively for each character c in string1: count1[c]++ for each character c in string2: count2[c]++ for each character c in 'a'...'z': if count1[c] < count2[c]: return false return true }