MFC(CAtlRegExp)正则表达式,用于匹配OR中值为0或1的N个字节的字符串

时间:2014-01-23 13:52:40

标签: regex mfc

我有一个字符串,例如6个字节;每个都可以被赋值为'0'或'1'。哪个是CAtlRegExp正则表达式,它匹配这些字节的任何0/1组合,但不是所有0?

例如:

0001010 Match
0000001 Match
0000010 Match
1111111 Match

0000000 No match

我想像

^[01][01][01][01][01][01]$

但是这个也匹配“000000”

在POSIX正则表达式中?

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您在问题中暗示,除了混合了零和1的字符串之外,没有其他输入是可能的,您只需找到一个或非零字符,即1或{ {1}}。如果找到一个,这将给你一个匹配。

如果你的正则表达式支持向前看,并且你想要在正则表达式中进行语法检查,你可以试试

[^0]

这确实可以确保6(更改为所需的长度)零或1,然后检查是否有一个可能以任意数量的前缀为前缀的一个。

编辑:检查出CAtlRegExp并且它不支持向前看:(但是我有一个更简单的正则表达式可能会完成这项工作:

(?=[01]{6})0*1

这不会验证长度,但它应该满足您的其他需求。如果那是你想要的(CAtlRegExp风味),也捕获字符串。如果没有,请删除大括号。 希望这会有所帮助。

此致