Regex 用于与或条件匹配的位置的正则表达式

Regex 用于与或条件匹配的位置的正则表达式,regex,pattern-matching,Regex,Pattern Matching,regex新手,正在寻找创建regexp的帮助,以了解以下内容: 数据项由六个字符串组成,如下例所示 1) “100100” 2) “110011” 3) “010000” 4) “110011” 5) “111111” 6) “000111” 需要使用regexp查找带有say的数据 1个在第1位或1个在第4位:项目1、2、4、5和6应匹配 1处于第二位置:项目2、4和5应匹配 1在第5和第6位:项目2、4、5和6应匹配 如果总是只有1和0的字符串,则应将它们视为二进制数,并使用逻辑运算符查

regex新手,正在寻找创建regexp的帮助,以了解以下内容:

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

1) “100100”

2) “110011”

3) “010000”

4) “110011”

5) “111111”

6) “000111”

需要使用regexp查找带有say的数据

  • 1个在第1位或1个在第4位:项目1、2、4、5和6应匹配

  • 1处于第二位置:项目2、4和5应匹配

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


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

对于您的示例,这些将起作用:

  • 1个在第1位或1个在第4位:项目1、2、4、5和6应匹配
1.…|…1.…

  • 1处于第二位置:项目2、4和5应匹配
.1….

  • 1在第5和第6位:项目2、4、5和6应匹配
…11

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

例如:

试试这个正则表达式

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

请在此处找到解释和演示

以下是一个示例。如有必要,将点改为零<代码>/^(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

您能否更清楚地了解匹配条件,您编写它们的方式,我不确定哪个条件是或它们是如何嵌套的。也许把每个匹配条件写在单独的一行上。我不明白为什么2和4与案例1不匹配-它们在第一个位置有1-你真的只是指第四个位置吗?迈克-所有条件都是或条件;正如莫顿所指出的,我的问题中有一个错误,这使你感到困惑。谢谢。莫顿-谢谢你指出错误。我已经改正了。别无选择,因为使用第三方软件组件接受regex过滤数据。很好,这很有效…今天学到了更多关于regex的知识。谢谢。使用了@doctorrange的解决方案,尽管这也有效。谢谢你的帮助。