Displaying page
of
pages;
Items to
Title |
Test
Details
Portable Game Notation (PGN)
|
Expression |
(?<pgnGame>\s*(?:\[\s*(?<tagName>\w+)\s*"(?<tagValue>[^"]*)"\s*\]\s*)+(?:(?<moveNumber>\d+)(?<moveMarker>\.|\.{3})\s*(?<moveValue>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?)(?:\s*(?<moveValue2>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?))?\s*(?:\(\s*(?<variation>(?:(?<varMoveNumber>\d+)(?<varMoveMarker>\.|\.{3})\s*(?<varMoveValue>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?)(?:\s*(?<varMoveValue2>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?))?\s*(?:\((?<varVariation>.*)\)\s*)?(?:\{(?<varComment>[^\}]*?)\}\s*)?)*)\s*\)\s*)*(?:\{(?<comment>[^\}]*?)\}\s*)?)*(?<endMarker>1\-?0|0\-?1|1/2\-?1/2|\*)?\s*)
|
Description |
Parses chess games in PGN notation. It supports variation and curly brace commentaries (just make sure you have commentaries after variations if there are both). It does not support semicolon commentaries, NAGs, % comments or international notation of board pieces. As Regex is not recursive, parsing must be done on found variations, until there are none left.
|
Matches |
[Event "30/8/2011 9:10:18 am"] 1.e4! (1. d4 (1. a3) { in variation comment} ) {comment} 1...e5 ?!
|
Non-Matches |
xxx
|
Author |
Rating:
Not yet rated.
Siderite
|
Displaying page
of
pages;
Items to