How is the AND/OR operator represented as in Regular Expressions?

后端 未结 5 1852
独厮守ぢ
独厮守ぢ 2020-11-27 10:37

I\'m currently programming a vocabulary algorithm that checks if a user has typed in the word correctly. I have the following situation: The correct solution for the word wo

相关标签:
5条回答
  • 2020-11-27 10:58

    Not an expert in regex, but you can do ^((part1|part2)|(part1, part2))$. In words: "part 1 or part2 or both"

    0 讨论(0)
  • 2020-11-27 11:00
    '^(part1|part2|part1,part2)$'
    

    does it work?

    0 讨论(0)
  • 2020-11-27 11:05

    Or you can use this:

    ^(?:part[12]|(part)1,\12)$
    
    0 讨论(0)
  • 2020-11-27 11:18

    Does this work without alternation?

    ^((part)1(, \22)?)?(part2)?$
    

    or why not this?

    ^((part)1(, (\22))?)?(\4)?$
    

    The first works for all conditions the second for all but part2(using GNU sed 4.1.5)

    0 讨论(0)
  • 2020-11-27 11:23

    I'm going to assume you want to build a the regex dynamically to contain other words than part1 and part2, and that you want order not to matter. If so you can use something like this:

    ((^|, )(part1|part2|part3))+$
    

    Positive matches:

    part1
    part2, part1
    part1, part2, part3
    

    Negative matches:

    part1,           //with and without trailing spaces.
    part3, part2, 
    otherpart1
    
    0 讨论(0)
提交回复
热议问题