我正在尝试创建一个正则表达式,它可以接受以下任何一个例子:
|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次。
非常感谢。
2条答案
按热度按时间cyej8jka1#
根据你的描述:
我想拒绝任何|'不是'-','x'或' o ',并且这些字符的总和不等于8,并且此模式重复4次完成行。
下面的regex可能是你要找的:
分解,这是:
[-xo]
-匹配-
、x
或o
之一的字符类[-xo]{8}
-与字符类匹配的8个字符[-xo]{8}\|
- 8个字符,后跟|
([-xo]{8}\|){4}
- 8个字符,后跟|
,正好四次最后,开始处的
\|
与初始|
匹配。您可能需要在正则表达式的开头和结尾添加锚点(^
和/或$
),这取决于您如何使用它。yfjy0ee72#
如果我没理解错的话,你想要这样的东西:
你可以在这里看到它的作用:http://refiddle.co/2ecn