组合正则表达式
在收集用户输入的各种条件如
>开始于:/(^ @)/ 要在用户输入多个条件时生成单个正则表达式, 这种方法工作到目前为止, 我无法正确确定,应该是正则表达式4的条件?并结合正则表达式这种方式工作?
条件是ORed还是ANDing在一起?
Starts with: abc Ends with: xyz Contains: 123 Doesn't contain: 456 OR版本相当简单;正如你所说,它主要是在各个条件之间插入管道的问题。正则表达式只要一个替代匹配就停止寻找匹配。 /^abc|xyz$|123|^(?:(?!456).)*$/ 第四个选择可能看起来很奇怪,但这是如何表达“不包含”正则表达式。顺便说一下,替代的顺序无关紧要;这实际上是相同的正则表达式: /xyz$|^(?:(?!456).)*$|123|^abc/ AND版本更复杂。在每个单独的正则表达式匹配后,匹配位置必须重置为零,以便下一个正则表达式可以访问整个输入。这意味着所有的条件必须被表示为lookaheads(技术上,他们中的一个不必是一个前瞻,我认为它表达的意图更清楚这种方式)。最后。* $完成比赛。 /^(?=^abc)(?=.*xyz$)(?=.*123)(?=^(?:(?!456).)*$).*$/ 然后有和AND和OR条件的结合的可能性 – 这是真正的乐趣开始。 :D (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |