是否有可以满足所有这些条件的RegEx?

时间:2016-01-09 23:22:26

标签: java regex

仅在

时接受用户输入
  
      
  • 用户输入中仅存在大写字母“X”,“O”,“D”,“L”,“E”。
  •   
  • 任何数量的'O'仅在'D'之间
  •   
  • 'DLE'在最后而不是自己。
  •   
     

'X'算什么。

例如,用户输入:'DDLE','DOODLE','XXXDODOOOODLEDLX' - 将起作用。

但是这些例子不起作用(“错误,输入错误”):'DLE','DOOODLLE''DEDEDOD'

1 个答案:

答案 0 :(得分:1)

基于提供的标准和示例

^(?=.+[DX][LX][EX]$)(?!.*[^DO]O+[^DO])[XODLE]+$

^(?=.+[DX][LX][EX]$)(?!.*[^DO]O+)(?!.*O+[^DO])[XODLE]+$

Demo

或取决于您对"' X'的解释。算作任何东西" - 意味着DOODDLEX有效     ^(?=.+[DX][LX][EX]X*$)(?!.*[^DO]O+[^DO])[XODLE]+$

^(?=.+[DX][LX][EX]X*$)(?!.*[^DO]O+)(?!.*O+[^DO])[XODLE]+$  

或如下所示

^(?=.+[DX][LX][EX]X*$)(?!.*[^DOX]O+)(?!.*O+[^DOX])[XODLE]+$