检查字符串是否包含所有特定符号的正则表达式

本文关键字:符号 正则表达式 字符串 是否 包含所 检查 | 更新日期: 2023-09-27 17:50:53

问题是可能的字符串是:abcdefghijklmnopqrstuvwxyz(排序)

还有另外一个字符串需要查找,比如:adef

检查所有指定字符是否在字符串中的正则表达式是什么?

测试用例:字符串:amnosxy查找字符:简单结果:真正的

字符串:amnosxy查找字符:anz结果:false(未找到z).

看起来像containsAll方法

检查的正则表达式是什么?(它可以动态地依赖于查找字符串)。

我不喜欢像每个字符循环这样的解决方案,并检查IndexOf.

检查字符串是否包含所有特定符号的正则表达式

不需要使用regex:

bool containsAll = !"osy".Except("amnosxy").Any();

另一种有效的方法是使用HashSet<char>IsSubsetOf方法:

HashSet<char> chars = new HashSet<char>("osy");
bool containsAll = chars.IsSubsetOf("amnosxy");

如果保证两个数组都排序,我就不会使用正则表达式。只要循环input[x],直到找到toFind[y],或者直到toFind[y]大于input[x] ->,这意味着没有这样的元素。

编辑:alternative RegEx: .*o.*s.*y.*,所以只要把.*放在所有这些字符之间。