cenário:
Eu estou tentando chegar a uma expressão regular em um arquivo que contém pedaços semelhantes, é basicamente arquivos PGN.
Cada pedaço começa com
[Evento "
.. e ents em
(1 / 2-1 / 2 | 1-0 | 0-1)
o tubo | symbol significa que há apenas um valor entre parênteses, 1 / 2-1 / 2 ou 1-0 ou 0-1
Problema:
Eu quero chegar a expressão regular que irá procurar por 1 / 2-1 / 2 e, em seguida, ir para cima e encontrar "[Evento" e selecione todo esse Chunk.
Então, considerando estes 3 pedaços
[Evento "Xadrez"]
[Data "2016"]
[Branco "Caruana, F"]
[Black "Onischuk, Al"]
[Resultado "1-0"]
1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 6.c3 b5 7.Bc2 d5 8.a4 dxe4
9.xb5 Bg4 10.bxc6 exf3 11.gxf3 Be6 12.Ra5 Qd6 13.f4 e4 14.d4 exd3 15.Qxd3 O-O
16.Qxd6 Bxd6 17.Rd1 Bg4 18.Rd4 Bf3 19.Ba4 Rfe8 20.Be3 Ne4 21.Bd1 Bxd1 22.Rxd1 Rab8
23.Nd2 Rxb2 24.Nxe4 Rxe4 25.Re5 Rxe3 26.fxe3 Rb8 27.Ra5 Kf8 28.c4 1-0
[Evento "Xadrez"]
[Data "2016"]
[White "Shabalov, A"]
[Black "Onischuk, Al"]
[Resultado "1 / 2-1 / 2"]
1.d4 Nf6 2.c4 e6 3.Nc3 d5 4.Nf3 Be7 5.e3 O-O 6.Bd3 dxc4 7.Bxc4 c5 8.O-O b6
9.Qe2 Bb7 10.dxc5 Bxc5 11.e4 Nbd7 12.Bf4 Nh5 13.Bg5 Be7 14.Be3 Nhf6 15.Rfd1 Qb8
16. Nd4 Rd8 17.f3 Ne5 18.Bb3 Nc6 19.Nxc6 Rxd1 + 20.Rxd1 Bxc6 21.Nb5 Qe5 22.Na3 Qc7
23.Rc1 Rc8 24.Qa6 Qd7 25.Rd1 Qc7 26.Rc1 Qd7 27.Rd1 Qc7 28.Rc1 Qd7 29.Rd1 Qc7
30.Rc1 1 / 2-1 / 2
[Evento "Xadrez"]
[Data "2016"]
[White "Onischuk, Al"]
[Black "Akobian, V"]
[Resultado "1 / 2-1 / 2"]
1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 h6 7.Bh4 b6 8.cxd5 Nxd5
9.Nxd5 exd5 10.Bxe7 Qxe7 11.Rc1 c5 12.dxc5 Bg4 13.e3 Bxf3 14.gxf3 Rc8 15.Qd2 Rxc5
16.Rxc5 Qxc5 17.Bg2 Nd7 18.O-O Rc8 19.Rd1 Nf6 20.f4 Qc2 21.Bxd5 Nxd5 22.Qxd5 Qxb2
23.Qd7 Rc1 24.Rxc1 Qxc1 + 25.Kg2 Qc4 26.Qxa7 Qe4 + 27.Kg3 Qg6 + 28.Kf3 Qh5 +
29.Kg2 Qg4 + 30.Kf1 Qd1 + 31.Kg2 1 / 2-1 / 2
Portanto, se eu inserir essa expressão, (enquanto a pesquisa começa na parte inferior, ela só deve localizar e selecionar o terceiro bloco como este
[Evento "Xadrez"]
[Data "2016"]
[White "Onischuk, Al"]
[Black "Akobian, V"]
[Resultado "1 / 2-1 / 2"]
1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 h6 7.Bh4 b6 8.cxd5 Nxd5
9.Nxd5 exd5 10.Bxe7 Qxe7 11.Rc1 c5 12.dxc5 Bg4 13.e3 Bxf3 14.gxf3 Rc8 15.Qd2 Rxc5
16.Rxc5 Qxc5 17.Bg2 Nd7 18.O-O Rc8 19.Rd1 Nf6 20.f4 Qc2 21.Bxd5 Nxd5 22.Qxd5 Qxb2
23.Qd7 Rc1 24.Rxc1 Qxc1 + 25.Kg2 Qc4 26.Qxa7 Qe4 + 27.Kg3 Qg6 + 28.Kf3 Qh5 +
29.Kg2 Qg4 + 30.Kf1 Qd1 + 31.Kg2 1 / 2-1 / 2
... então, quando eu clico em localizar próximo, ele deve encontrar 7 selecione o segundo pedaço.
Então as 2 palavras para pesquisar entre são
1. [Evento "
2. 1 / 2-1 / 2
Por favor alguém pode ajudar ??