我对C#中的模式有这个问题。
我有这种模式:
1111100000000000000000000
这是{1}}的25 1或0。
此row
应匹配同一位置上具有相同1的每个字符串,但如果pattern
在string
具有0的位置{1}},则应忽略该{1}}。
pattern
唯一应该检查的是1是否是正确的位置。
离。
模式应匹配:
pattern
但不是:
1111100000000000000000000
1111100000001000100010001
1111111110000111100111100
我试过这个,用正则表达式:
0111110000101110001011000
1011111010101010101000000
我希望有人可以给我一个想法。
谢谢!
答案 0 :(得分:2)
只需将字符串转换为int并使用AND
运算符
int pattern = Convert.ToInt32("1111100000000000000000000", 2);
int[] nums = new int[]{
Convert.ToInt32("1111100000000000000000000", 2),
Convert.ToInt32("1111100000001000100010001", 2),
Convert.ToInt32("1111111110000111100111100", 2),
Convert.ToInt32("0111110000101110001011000", 2),
Convert.ToInt32("1011111010101010101000000", 2),
};
foreach (var num in nums)
{
bool b = (pattern & num)==pattern;
Console.WriteLine(b);
}
<强>输出:强>
True
True
True
False
False