检查字符串是否包含所有特定符号的正则表达式
本文关键字:符号 正则表达式 字符串 是否 包含所 检查 | 更新日期: 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.*
,所以只要把.*
放在所有这些字符之间。