|
From: <rga...@us...> - 2002-10-18 15:05:48
|
Update of /cvsroot/csms/csms-core/src/test/resources/conf
In directory usw-pr-cvs1:/tmp/cvs-serv10867/test/resources/conf
Added Files:
BBCTestScoringConfig.xsl fanfoot.properties footballEvents.xml
Log Message:
Initial test code for scoring application
--- NEW FILE: BBCTestScoringConfig.xsl ---
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Document : BBcTestScoringConfig.xsl
Created on : 24 September 2002, 14:51
Author : rgardler
Description:
Transforms an Events XML document into a score XML document
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- template rule matching source root element -->
<xsl:template match="/">
<score>It works!</score>
</xsl:template>
</xsl:stylesheet>
--- NEW FILE: fanfoot.properties ---
#Mon Sep 30 21:08:32 BST 2002
ScoringConfigurationFile=file\:///home/rgardler/projects/fanfoot/src/resources/conf/BBCScoringConfig.xsl
Scores2HTMLStylsheet=file\:///home/rgardler/projects/fanfoot/src/resources/conf/Scores2HTML.xsl
EventConfigurationFile=file\:///home/rgardler/projects/fanfoot/src/resources/conf/footballEvents.xml
--- NEW FILE: footballEvents.xml ---
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : footballEvents.xml
Created on : 21 September 2002, 11:13
Author : rgardler
Description:
A descrption of the events that can be found
in a real life English Rules Football game that
may have an influence on the Fantasy game.
This configuration file is parsed by the automated
scoring system (org.fanfoot.scoring) in order to
extract event information from a textual commentary
of a live game.
-->
<events type="match">
<!-- Get the data for the UID of this match -->
<UID type="date_competition_homeTeam_awayTeam">
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="date">[A-Z][a-z]*,\s\d?\d\s[A-Z][a-z]*,\s\d\d\d\d</part>
<part name="competition">[\s]*Barclaycard\sPremiership[\s]*</part>
<part name="homeTeam">[A-Z][a-zA-Z\s]*[\s]*</part>
<unwantedPart>\d[\s]*</unwantedPart>
<unwantedPart>-[\s]*</unwantedPart>
<unwantedPart>\d[\s]*</unwantedPart>
<part name="awayTeam">(?:[A-Z][a-z]*\s)*</part>
</pattern>
</UID>
<!-- Extract the default information for this match -->
<event type="result">
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="date">[A-Z][a-z]*,\s\d?\d\s[A-Z][a-z]*,\s\d\d\d\d</part>
<part name="competition">[\s]*Barclaycard\sPremiership[\s]*</part>
<part name="homeTeam">[A-Z][a-zA-Z\s]*[\s]*</part>
<part name="homeScore">\d[\s]*</part>
<unwantedPart>-[\s]*</unwantedPart>
<part name="awayScore">\d</part>
<unwantedPart>[\s]*</unwantedPart>
<part name="awayTeam">(?:[A-Z][a-z]*\s)*</part>
</pattern>
</event>
<!-- Extract goal events -->
<event type="goal">
<duplicateDetection>
<part name="normalTimeMinutes"/>
<part name="normalTimeSeconds"/>
<part name="injuryTimeMinutes"/>
<part name="injuryTimeSeconds"/>
<part name="player"/>
</duplicateDetection>
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>\s[Gg]oal\s-\s</unwantedPart>
<part name="player">(?:(?:[Mac|Mc|A-Z][a-z]*\s)(?!\d)){1,3}</part>
</pattern>
</event>
<event type="assist">
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z\s\.\(\)\d-,']*[Aa]ssist\s?\(?[a-zA-Z]*\)?\s?by\s?</unwantedPart>
<part name="player">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>
</pattern>
</event>
<event type="booking">
<!-- FIXME: This pattern matches bookings that do not have lines of commentary after the time and booking heading, but it fails if there are commentary lines -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>\s*Booking\s*</unwantedPart>
<!-- this makes the system lock up <unwantedPart>(?:(?:[^\.]*.)(?![^.][Bb]ooked\.))*</unwantedPart> -->
<part name="player">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>
<unwantedPart>[^)]*\)\s*[Bb]ooked.</unwantedPart>
</pattern>
</event>
<event type="sendingOff">
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>\s[Ss]ent\s[Oo]ff\s</unwantedPart>
<part name="player">(?:(?:[Mac|Mc|A-Z][a-z]*\s)(?!\d)){1,3}</part>
</pattern>
</event>
<event type="substitution">
<!-- The first substitution in a commentary slot -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z]+\s?[a-zA-Z]*\s?[Ss]ubstitution\s?:\s</unwantedPart>
<part name="playerOff">(?:(?:[Mac|Mc|A-Z][a-z]*\s)){1,3}</part>
<unwantedPart>replaced\sby\s</unwantedPart>
<part name="playerOn">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>]
<unwantedPart>\s?\(\s?</unwantedPart>
<part name="reason">[a-zA-Z\s]*</part>
<unwantedPart>\s?\)</unwantedPart>
</pattern>
<!-- The second substitution in a commentary slot -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z]+\s?[a-zA-Z]*\s?[Ss]ubstitution\s?:\s</unwantedPart>
<part name="playerOff">(?:(?:[Mac|Mc|A-Z][a-z]*\s)){1,3}</part>
<unwantedPart>replaced\sby\s</unwantedPart>
<part name="playerOn">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>]
<unwantedPart>\s?\(\s?</unwantedPart>
<part name="reason">[a-zA-Z\s]*</part>
<unwantedPart>\s?\)</unwantedPart>
</pattern>
<!-- The third substitution in a commentary slot -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z]+\s?[a-zA-Z]*\s?[Ss]ubstitution\s?:\s</unwantedPart>
<part name="playerOff">(?:(?:[Mac|Mc|A-Z][a-z]*\s)){1,3}</part>
<unwantedPart>replaced\sby\s</unwantedPart>
<part name="playerOn">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>]
<unwantedPart>\s?\(\s?</unwantedPart>
<part name="reason">[a-zA-Z\s]*</part>
<unwantedPart>\s?\)</unwantedPart>
</pattern>
<!-- The fourth substitution in a commentary slot -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z]+\s?[a-zA-Z]*\s?[Ss]ubstitution\s?:\s</unwantedPart>
<part name="playerOff">(?:(?:[Mac|Mc|A-Z][a-z]*\s)){1,3}</part>
<unwantedPart>replaced\sby\s</unwantedPart>
<part name="playerOn">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>]
<unwantedPart>\s?\(\s?</unwantedPart>
<part name="reason">[a-zA-Z\s]*</part>
<unwantedPart>\s?\)</unwantedPart>
</pattern>
<!-- The fifth substitution in a commentary slot -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z]+\s?[a-zA-Z]*\s?[Ss]ubstitution\s?:\s</unwantedPart>
<part name="playerOff">(?:(?:[Mac|Mc|A-Z][a-z]*\s)){1,3}</part>
<unwantedPart>replaced\sby\s</unwantedPart>
<part name="playerOn">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>]
<unwantedPart>\s?\(\s?</unwantedPart>
<part name="reason">[a-zA-Z\s]*</part>
<unwantedPart>\s?\)</unwantedPart>
</pattern>
<!-- The sixth substitution in a commentary slot -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<part name="normalTimeMinutes">\d\d?</part>
<unwantedPart>:</unwantedPart>
<part name="normalTimeSeconds">\d\d</part>
<unwantedPart>\s*\(?</unwantedPart>
<part name="injuryTimeMinutes">\d?\d?</part>
<unwantedPart>:?</unwantedPart>
<part name="injuryTimeSeconds">\d?\d?</part>
<unwantedPart>\)?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z\s]*:[a-zA-Z\s]*\([a-zA-Z\)]*\.\s?</unwantedPart>
<unwantedPart>[a-zA-Z]+\s?[a-zA-Z]*\s?[Ss]ubstitution\s?:\s</unwantedPart>
<part name="playerOff">(?:(?:[Mac|Mc|A-Z][a-z]*\s)){1,3}</part>
<unwantedPart>replaced\sby\s</unwantedPart>
<part name="playerOn">(?:(?:[Mac|Mc|A-Z][A-Za-z']*\s)(?!\))){1,3}</part>]
<unwantedPart>\s?\(\s?</unwantedPart>
<part name="reason">[a-zA-Z\s]*</part>
<unwantedPart>\s?\)</unwantedPart>
</pattern>
</event>
<event type="teamStarter">
<!-- Team 1 - Player 1 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 2 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 3 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 4 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 5 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 6 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 7 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 8 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 9 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 10 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Player 11 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
<unwantedPart>Subs:</unwantedPart>
</pattern>
<!-- Team 2 - Player 1 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 2 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 3 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 4 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 5 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 6 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 7 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 8 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 9 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 10 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Player 11 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
<unwantedPart>Subs:</unwantedPart>
</pattern>
</event>
<event type="substituteStarter">
<!-- Team 1 - Sub 1 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Sub 2 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Sub 3 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Sub 4 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 1 - Sub 5 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>.*\d\d?:\d\d</unwantedPart>
<unwantedPart>(?:[^\.]*\.)*\s*</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,\s*</unwantedPart>
<part name="player">[^,\s]*</part>
</pattern>
<!-- Team 2 - Sub 1 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Sub 2 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Sub 3 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Sub 4 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
</pattern>
<!-- Team 2 - Sub 5 -->
<pattern>
<sourceType>BBC Text Commentary</sourceType>
<unwantedPart>Subs:\s*(?:[a-zA-z]*\s*,\s*){4,}[a-zA-z]*\s*</unwantedPart>
<unwantedPart>(?![a-zA-Z,\s]*Ref:)</unwantedPart>
<part name="team">(?:(?:[A-Z][a-z]*)\s)*</part>
<unwantedPart>[^:]*:\s*</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<unwantedPart>[^,]*,</unwantedPart>
<part name="player">[^,]*</part>
<unwantedPart>Ref:</unwantedPart>
</pattern>
</event>
</events>
|