我正在尝试制作一个接受以下任何示例的正则表达式:
|x-x-x-x-|x-x-x-x-|x-x-x-x-|x-x-x-x-|
|x-------|--------|x-------|--------|
|--------|x-------|--------|x-------|
|-xx---x-|-xxxx-x-|--------|ooooooo-|
|xo--oo--|--------|xo------|--------|
|--------|x-------|--------|x-------|
到目前为止,这就是我所拥有的:
\|([\-|x|o]{9}\|){4}
我不想用“x-x-x-x- |”组成一组同样,但可能是每个“( - | x | o)”。如果你注意到“| ... |”中只有8个字符我应该改为8次重复吗?在regex网站上显示它会重复8次。
非常感谢。
答案 0 :(得分:1)
根据您的描述:
我想拒绝“|”之间的任何内容不是' - ','x'或'o',并且这些字符的总和不等于8,并且此模式重复4次完成该行。
以下正则表达式可能正是您所寻找的:
\|([-xo]{8}\|){4}
细分,这是:
[-xo]
- 与-
,x
或o
[-xo]{8}
- 与字符类匹配的8个字符[-xo]{8}\|
- 8个字符后跟|
([-xo]{8}\|){4}
- 8个字符后跟|
,正好是最后,开头的\|
与初始|
匹配。您可能需要在正则表达式的开头和结尾添加锚点(^
和/或$
),具体取决于您的使用方式。
答案 1 :(得分:0)