什么是与某些索引处的字符匹配的正则表达式?

时间:2016-12-15 19:53:25

标签: java regex pattern-matching

是否有一个正则表达式匹配某些索引处带有字母“a”或“x”的字符串?

例如,索引可能是

0, 3, 6
1, 4, 7
2, 5, 8

根据这些指数可能的模式:

"a--a--a--"
"-x--x--x-"
"--a--a--a"

其他出现的"a""x"都可以。我只是想确保某些索引包含"a"

编辑:这个问题是一个井字棋盘的子问题。我要通过使用正则表达式确定是否有胜利者。我不想要这个答案。我只是想要一点帮助我走向最终答案。以上是为了帮助我找到一个可以识别是否有垂直赢家的正则表达式。

3 个答案:

答案 0 :(得分:3)

如果您的井字符看起来像9个字符长的字符串,测试此模式应该足以知道是否有垂直线:

a..a..a

答案 1 :(得分:2)

您可以使用此正则表达式:

([a-zA-Z])..\1..\1

RegEx Demo

  • ([a-zA-Z])将匹配并捕获##
  • 组中的任何字母
  • 然后使用反向引用n+3匹配n+6\1位置的另外两个相同字母的实例,其中n是字母的第一个位置。

答案 2 :(得分:1)

由于a每3个字符出现一次,(a..)*将匹配这些重复。然后你只需要在其前面加上一个匹配前面所需字符数的模式,这只是n-1 .个模式。

因此,对于您提供的三个示例,它是

^(a..)*
^.(a..)*
^..(a..)*