与OR条件匹配的正则表达式

时间:2013-01-17 21:08:49

标签: regex pattern-matching

新手到正则表达式并寻求帮助创建正则表达式来寻找以下内容:

数据项由六个字符串组成,如下例所示

1)“100100”

2)“110011”

3)“010000”

4)“110011”

5)“111111”

6)“000111”

需要使用regexp来查找数据

  • 第1位置1或第4位置1:项目1,2,4,5和6应匹配

  • 第二位置1:项目2,4 ad 5应匹配

  • 第5和第6位置1:第2,4,5和6项应匹配

4 个答案:

答案 0 :(得分:0)

如果它总是只有1和0的字符串,你应该将它们视为二进制数,并使用逻辑运算符来查找匹配。

答案 1 :(得分:0)

鉴于您的样本,这些将起作用:

  • 1位于第1位置或1位于第4位置:项目1,2,4,5和6应匹配

1.....|...1...

  • 1位于第2位:项目2,4 ad 5应匹配

.1....

  • 1在第5和第6位:第2,4,5和6项应匹配

....11

或者,如果您要匹配这些规则的任何,请将它们与|(或)运算符组合使用。

示例:

http://regexpal.com/?flags=g&regex=(1.....%7C...1...%7C.1....%7C....11)&input=100100%0A%0A110011%0A%0A010000%0A%0A110011%0A%0A111111%0A%0A000111

答案 2 :(得分:0)

试试这个正则表达式

([1][0-1]{2}[1][0-1]{2})|([0-1][1][0-1]{4})|([0-1]{4}[1]{2})

在此处查找解释和演示http://www.regex101.com/r/vD9jE7

答案 3 :(得分:0)

这是一个例子。如有必要,用零更改点。 /^(11..|.1.1)11$/

^              # beginning of string
(              # either
    11..     # 11 and any 2 char
    |          # or
    .1.1     # any char, 1, any char, 1
)
11
$             # end of string