Ich habe etwa 3 Textblöcke wie diesen
[Event "Chess"]
[Date "1994"]
[White "Viktor Bologan"]
[Black "Michael Adams"]
[Result "0-1"]
1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.Nbd2 a6 7.Bb3 Ba7 8.h3 O-O
9.Nf1 h6 10.g4 d5 11.Qe2 dxe4 12.dxe4 Nd7 13.g5 Nc5 14.gxh6 Nd3+ 15.Kd1 Nf4+
16.Qd2 Qf6 17.Rg1 g6 18.Kc2 Nxh3 19.Rg3 Nxf2 20.Ng5 Nxe4 21.Nxe4 Qxf1 22.Qg5 Qe2+
23.Kb1 Qxe4+ 0-1
[Event "Chess"]
[Date "1995"]
[White "Michael Adams"]
[Black "Fernando Silva"]
[Result "0-1"]
1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Nxd4 8.Qxd4 Qa5
9.Bd2 e5 10.Nd5 Qxd5 11.Qxd5 Nxd5 12.exd5 Be7 13.Be2 O-O 14.c4 Rfc8 15.O-O b5
16.Rfc1 bxc4 17.Bxc4 a5 18.Bd3 Bd8 19.Rxc8 Rxc8 20.Rc1 Rb8 21.b3 f5 22.Bc4 Kf8
23.h3 Ke8 24.Rc2 Bb5 25.Kf1 Bxc4+ 26.bxc4 Rb1+ 27.Ke2 Kd7 28.Bc3 Rg1 29.g3 Bb6
30.Be1 f4 31.gxf4 exf4 32.Bc3 g5 33.Kf3 0-1
[Event "Chess"]
[Date "1995"]
[White "Michael Adams"]
[Black "Jeroen Piket"]
[Result "1-0"]
1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 a6 6.Nbd2 O-O 7.Bb3 d6 8.h3 Be6
9.Bc2 h6 10.O-O Re8 11.Qe2 Nh5 12.Kh2 Nf4 13.Qd1 Qf6 14.Ng1 Rad8 15.Qf3 Qg6
16.Nb3 Nh5 17.Nxc5 dxc5 18.Be3 b6 19.Ne2 Nf6 20.Qg3 Qxg3+ 21.Nxg3 c4 22.Rfd1 cxd3
23.Bxd3 a5 24.Bc2 Rxd1 25.Bxd1 Rd8 26.Be2 Ne8 27.Nf1 Nd6 28.Nd2 f6 29.Kg1 Kf7
30.Kf1 Ke7 31.Ke1 Bf7 32.f3 Be6 33.Bf2 g6 34.b3 Kf7 35.Bd3 Nc8 36.Ke2 N8e7
37.h4 h5 38.Be3 Rd7 39.a3 Rd8 40.a4 Ra8 41.Nc4 Rd8 42.Rg1 Nc8 43.Rb1 Nd6
44.Nxd6+ Rxd6 45.Kd2 Ne7 46.Kc2 Bd7 47.Rg1 Be6 48.Be2 Rd8 49.Rf1 Nc8 50.f4 Nd6
51.Bd3 exf4 52.Bxf4 Ne8 53.Bb5 Nd6 54.Bc6 Kg7 55.e5 Bf5+ 56.Kb2 Nf7 57.exf6+ Kxf6
58.g3 Rc8 59.Re1 Rd8 60.Bxc7 Rc8 61.Bxb6 1-0
also versuche ich, den gesamten Textblock zu finden und auszuwählen, der enthält
1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5
Wenn ich also danach suche, sollte es Block1 und Block3 zusammen auswählen. Ich versuche es mit einem Muster, das vielleicht hilft, aber ich kann es nicht vollständig konstruieren.
Muster ist:\R\[Event (?:(?!\[Event)[\s\S])+1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 \s\S\R(?!"\])
Antwort1
Sie sind ganz nah dran, ändern Sie einfach das erste \R
am Anfang durch ^
(Zeilenanfang), escapen Sie die Punkte und ändern Sie den letzten Teil \s\S\R(?!"\])
in [\s\S]+?(?:\R\R|\z)
, siehe Erklärung unten.
Dies entspricht den 2 Vorkommen in Ihrem Beispiel.
- Ctrl+F
- Finde was:
^\[Event (?:(?!\[Event)[\s\S])+1\.e4 e5 2\.Nf3 Nc6 3\.Bc4 Bc5 [\s\S]+?(?:\R\R|\z)
- check Umwickeln
- check Regulärer Ausdruck
- Find All in Current Document
Erläuterung:
^ # beginning of line
\[Event # literally
(?: # starqt tempered greedy token
(?!\[Event) # negative lookahead, make sure we haven't [Event
[\s\S] # any character included linebreak
)+ # 1 or more times
1\.e4 e5 2\.Nf3 Nc6 3\.Bc4 Bc5 # literally
[\s\S]+? # 1 or more any character included linebreak, not greedy
(?:\R\R|\z) # non capture group, double linebreak or end of file
Bildschirmaufnahme:
Antwort2
Verwenden Sie diesen Suchbegriff:
^\[Event.*?\R.*?\R.*?\R.*?\R.*?\R.*?\R1\.e4 e5 2\.f4 exf4 3\.Nf3 g5 4\.h4 g4(?sm).*?(?=\R\R)
Wo:
^\[Event
: Übereinstimmungen[Event
am Zeilenanfang.*?\R
: nicht gierige Übereinstimmung von jedem bis einschließlich Newline, 6 Mal1\.e4 e5 2\.f4 exf4 3\.Nf3 g5 4\.h4 g4
: zu suchende Zeichenfolge(?sm)
: mehrzeilige Übereinstimmung aktivieren.*?
: nicht gierige Übereinstimmung mit jedem Zeichen(?=\R\R)
: bis ohne Einschluss einer Leerzeile
Aktivieren Sie NICHT die Option „. passt in neue Zeile“.