Regex 正则表达式不按特定顺序匹配一个字符

Regex 正则表达式不按特定顺序匹配一个字符,regex,powershell-4.0,Regex,Powershell 4.0,我希望此正则表达式条件为真: 字符串长度仅为1或2个字符 仅当字符串包含“a”或“ab”或“ba”或“b”时,条件才为true 谢谢 ps:不起作用: “^[ab]{1,2}$” “^[^ab][ab][^ab]$” “^[^ab]([ab]{1,2})[^ab]$” 您可以使用您列举的模式:'a'或'ab'或'ba'或'b' ^(?:a|ab|ba|b)$ 您可以使用您列举的模式:'a'或'ab'或'ba'或'b' ^(?:a|ab|ba|b)$ 具有非捕获组的此表达式也可以工作: ^(?

我希望此正则表达式条件为真:

  • 字符串长度仅为1或2个字符
  • 仅当字符串包含“a”或“ab”或“ba”或“b”时,条件才为true
  • 谢谢

    ps:不起作用:

  • “^[ab]{1,2}$”
  • “^[^ab][ab][^ab]$”
  • “^[^ab]([ab]{1,2})[^ab]$”

  • 您可以使用您列举的模式:
    'a'或'ab'或'ba'或'b'

    ^(?:a|ab|ba|b)$
    

    您可以使用您列举的模式:
    'a'或'ab'或'ba'或'b'

    ^(?:a|ab|ba|b)$
    

    具有非捕获组的此表达式也可以工作:

    ^(?:ab?|ba?)$
    
    或与捕获组一起:

    ^(ab?|ba?)$
    

    如果您希望探索/简化/修改该表达式,它已被删除 在的右上面板上进行了说明 . 如果你愿意,你可以 也可以观看,它将如何匹配 对照一些样本输入


    正则表达式电路 可视化正则表达式:


    此表达式对于非捕获组也可能有效:

    ^(?:ab?|ba?)$
    
    或与捕获组一起:

    ^(ab?|ba?)$
    

    如果您希望探索/简化/修改该表达式,它已被删除 在的右上面板上进行了说明 . 如果你愿意,你可以 也可以观看,它将如何匹配 对照一些样本输入


    正则表达式电路 可视化正则表达式:


    ^(a | ab | ba | b)$
    呢?
    ab
    我想可能只是一个占位符吧?会有比你提到的四种排列更多的排列吗?如果不是按照@Lynn的建议去做的话。
    ^(a | ab | ba | b)$
    ab
    我想可能只是一个占位符吧?会有比你提到的四种排列更多的排列吗?如果不只是按照@Lynn的建议去做。@Jomme?:是非捕获的group@Jomme?:是非捕获组