import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "#([a-fA-F0-9]{3})([a-fA-F0-9]{3})?(?=\\W?)";
final String string = "/* Ce fichier contient les classes CSS personnalisées */\n\n"
+ "/* **************************************** couleurs ******************************************* */\n"
+ "@coldisp: #090;\n"
+ "@colindisp: #FA0;\n"
+ "@colweekend: #FA0;\n"
+ "@colconges: #F00;\n"
+ "@colreservations: #FA0;\n"
+ "@colhoraires: #850;\n"
+ "@colferie: #9CF;\n"
+ "@colrien: #FFF;\n\n"
+ "@colrupturesfond: #A8D089;\n"
+ "@colrupturestext: #000000;\n\n"
+ "@colbaronglefond: #CCEFCB;\n"
+ "@colbarongletext: #000000;\n\n"
+ "@colbaroutilfond: #DBF0CC;\n"
+ "@colbaroutiltext: #000000;\n\n"
+ "@colbartitrefond: #315E0F;\n"
+ "@colbartitretext: #FFFFFF;\n\n"
+ "@colbordures: #BBE899;\n\n"
+ "/* **************************** fonctions de dégradés verticaux ******************************* */\n"
+ ".degradev (@color1, @color2) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(top, @color1, @color2);\n"
+ " background-image: -moz-linear-gradient(top, @color1, @color2);\n"
+ " background-image: -o-linear-gradient(top, @color1, @color2);\n"
+ " background-image: -ms-linear-gradient(top, @color1, @color2);\n"
+ " background-image: linear-gradient(top, @color1, @color2);\n"
+ "}\n"
+ ".degradev (@color1, @color2, @color3) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(top, @color1, @color2, @color3);\n"
+ " background-image: -moz-linear-gradient(top, @color1, @color2, @color3);\n"
+ " background-image: -o-linear-gradient(top, @color1, @color2, @color3);\n"
+ " background-image: -ms-linear-gradient(top, @color1, @color2, @color3);\n"
+ " background-image: linear-gradient(top, @color1, @color2, @color3);\n"
+ "}\n"
+ ".degradev (@color1, @color2, @color3, @color4) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(top, @color1, @color2, @color3, @color4);\n"
+ " background-image: -moz-linear-gradient(top, @color1, @color2, @color3, @color4);\n"
+ " background-image: -o-linear-gradient(top, @color1, @color2, @color3, @color4);\n"
+ " background-image: -ms-linear-gradient(top, @color1, @color2, @color3, @color4);\n"
+ " background-image: linear-gradient(top, @color1, @color2, @color3, @color4);\n"
+ "}\n\n"
+ ".degradev (@color1, @color2, @color3, @color4, @color5) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(top, @color1, @color2, @color3, @color4, @color5);\n"
+ " background-image: -moz-linear-gradient(top, @color1, @color2, @color3, @color4, @color5);\n"
+ " background-image: -o-linear-gradient(top, @color1, @color2, @color3, @color4, @color5);\n"
+ " background-image: -ms-linear-gradient(top, @color1, @color2, @color3, @color4, @color5);\n"
+ " background-image: linear-gradient(top, @color1, @color2, @color3, @color4, @color5);\n"
+ "}\n\n"
+ ".degradev (@color1, @color2, @color3, @color4, @color5, @color6) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(top, @color1, @color2, @color3, @color4, @color5, @color6);\n"
+ " background-image: -moz-linear-gradient(top, @color1, @color2, @color3, @color4, @color5, @color6);\n"
+ " background-image: -o-linear-gradient(top, @color1, @color2, @color3, @color4, @color5, @color6);\n"
+ " background-image: -ms-linear-gradient(top, @color1, @color2, @color3, @color4, @color5, @color6);\n"
+ " background-image: linear-gradient(top, @color1, @color2, @color3, @color4, @color5, @color6);\n"
+ "}\n\n"
+ "/* *********************************** fonctions de dégradés horizontaux ********************************** */\n"
+ ".degradeh (@color1, @color2) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(to left, @color1, @color2);\n"
+ " background-image: -moz-linear-gradient(to left, @color1, @color2);\n"
+ " background-image: -o-linear-gradient(to left, @color1, @color2);\n"
+ " background-image: -ms-linear-gradient(to left, @color1, @color2);\n"
+ " background-image: linear-gradient(to left, @color1, @color2);\n"
+ "}\n"
+ ".degradeh (@color1, @color2, @color3) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(to left, @color1, @color2, @color3);\n"
+ " background-image: -moz-linear-gradient(to left, @color1, @color2, @color3);\n"
+ " background-image: -o-linear-gradient(to left, @color1, @color2, @color3);\n"
+ " background-image: -ms-linear-gradient(to left, @color1, @color2, @color3);\n"
+ " background-image: linear-gradient(to left, @color1, @color2, @color3);\n"
+ "}\n"
+ ".degradeh (@color1, @color2, @color3, @color4) {\n"
+ " background-color: @color2;\n"
+ " background-image: -webkit-linear-gradient(to left, @color1, @color2, @color3, @color4);\n"
+ " background-image: -moz-linear-gradient(to left, @color1, @color2, @color3, @color4);\n"
+ " background-image: -o-linear-gradient(to left, @color1, @color2, @color3, @color4);\n"
+ " background-image: -ms-linear-gradient(to left, @color1, @color2, @color3, @color4);\n"
+ " background-image: linear-gradient(to left, @color1, @color2, @color3, @color4);\n"
+ "}\n\n"
+ ".toolbar_icon {\n"
+ " background-size: 24px;\n"
+ "}\n\n"
+ "/* ****************************** valeurs par défaut ****************************** */\n\n\n"
+ "iframe[seamless]{\n"
+ " background-color: transparent;\n"
+ " border: 0px none transparent;\n"
+ " padding: 0px;\n"
+ "}\n\n\n"
+ "//.x-grid-row .x-grid-cell,\n"
+ ".x-grid-data-row .x-grid-cell,\n"
+ ".x-grid-group-title {\n"
+ " font-family: \"Segoe UI\", \"tahoma\", \"arial\", \"verdana\", sans-serif;\n"
+ "}\n\n"
+ ".x-grid-row-summary .x-grid-cell-inner {\n"
+ " font-weight: bold !important;\n"
+ " font-size: 13px;\n"
+ "}\n\n"
+ ".x-panel-header-text-default-framed,\n"
+ ".x-tab button,\n"
+ ".x-panel-header-default,\n"
+ ".x-panel-header-text-default,\n"
+ ".x-btn-inner,\n"
+ ".x-fieldset-header {\n"
+ " font-size: 12px !important;\n"
+ "}\n\n"
+ ".x-grid-with-row-lines .x-grid-cell-inner {\n"
+ " line-height: 21px;\n"
+ " white-space: normal;\n"
+ "}\n\n"
+ "//.x-grid-row .x-grid-cell {\n"
+ ".x-grid-data-row .x-grid-cell {\n"
+ " font-size: 13px;\n\n"
+ " a {\n"
+ " text-decoration: none;\n"
+ " }\n"
+ "}\n\n\n"
+ "/* enlève le padding par défaut dans les cellules des grids*/\n"
+ ".x-grid-cell-inner,\n"
+ ".x-grid-group-hd {\n"
+ " padding: 0 !important;\n"
+ "}\n\n"
+ "/* corrige le padding des cellules de treeview */\n"
+ "/*.x-tree-view .x-grid-cell-inner {\n"
+ " padding: 3px !important;\n"
+ "}\n"
+ "*/\n"
+ ".x-tree-view .x-grid-cell-inner-treecolumn {\n"
+ " padding: 3px !important;\n"
+ "}\n\n\n"
+ "/* dossier fermé */\n"
+ ".x-tree-icon-parent {\n"
+ " background-image: url(\"../resources/images/folder_closed_16x16.png\");\n"
+ "}\n\n"
+ "/* dossier ouvert */\n"
+ ".x-grid-tree-node-expanded .x-tree-icon-parent {\n"
+ " background-image: url(\"../resources/images/folder_16x16.png\");\n"
+ "}\n\n\n"
+ "/* corrige le padding par défaut dans les entêtes de colonne des grids*/\n"
+ "/* et centre les entete de colonne */\n"
+ ".x-column-header-inner {\n"
+ " text-align: center !important;\n"
+ " padding: 3px 0px;\n"
+ "}\n\n"
+ ".x-grid-group-title {\n"
+ " font-size: 11px;\n"
+ " line-height: 18px;\n"
+ " height: 18px;\n"
+ " vertical-align: middle;\n\n"
+ " .degradeh(#2f323f, #2e65a7, #2f323f);\n"
+ " background-color: #2F323F !important;\n"
+ " color: #FFF;\n"
+ "}\n\n"
+ ".x-boundlist-list-ct ul {\n"
+ " padding: 0;\n"
+ " list-style-type: none;\n"
+ "}\n\n"
+ ".x-timepicker {\n"
+ " .x-boundlist-item {\n"
+ " text-align: center;\n"
+ " }\n"
+ "}\n\n"
+ ".x-grid-cell.vrai, .x-grid-cell.faux {\n"
+ " font-size: 18px;\n"
+ "}\n"
+ ".x-grid-cell.vrai {\n"
+ " color: #060;\n"
+ "}\n"
+ ".x-grid-cell.faux {\n"
+ " color: #900;\n"
+ "}\n\n\n\n"
+ "/* ************************************************* commun ******************************************************* */\n"
+ ".handcursor {\n"
+ " cursor: pointer;\n"
+ "}\n\n"
+ ".imgbackground {\n"
+ " width: 100%;\n"
+ " bottom: 0px;\n"
+ " left: 0px;\n"
+ " position: absolute;\n"
+ "}\n\n"
+ ".zindex1 {\n"
+ " z-index: 1;\n"
+ "}\n\n"
+ ".whitebg {\n"
+ " z-index: 1;\n"
+ "}\n\n"
+ ".whitebg .x-panel-body {\n"
+ " background-color: rgba(255,255,255,0.5) !important;\n"
+ "}\n\n"
+ ".champ-email input[type=text] {\n"
+ " background : #fff url(\"../resources/images/email_16x16.png\") 4px 50% no-repeat;\n"
+ " padding-left: 25px;\n"
+ " cursor: pointer;\n"
+ "}\n\n"
+ ".ligne-vide {\n"
+ " display: none;\n"
+ "}\n\n"
+ ".champ-gmaps textarea {\n"
+ " background: #ffffff url(\"../resources/images/localisation_16x16.png\") no-repeat 99% 8%;\n"
+ " padding-left: 10px;\n"
+ " padding-right: 25px;\n"
+ " cursor: pointer;\n"
+ "}\n\n"
+ "/* ************************************************* spécifique **************************************************** */\n"
+ "/* header */\n\n"
+ "#headerpanel {\n\n"
+ " #container_welcome {\n\n"
+ " font-family: 'sinkin_sans', Arial, sans-serif;\n\n"
+ " /* titre de l'application */\n"
+ " #txt_welcome {\n"
+ " vertical-align: bottom;\n"
+ " /*height: 62px;*/\n\n"
+ " #titre {\n"
+ " text-shadow: 0 0 0.4em #FFF, 0 0 0.4em #FFF, 0 0 0.4em #FFF, 0 0 0.4em #FFF, 0 0 0.4em #FFF, 0 0 0.4em #FFF, 0 0 0.4em #FFF, 0 0 0.4em #FFF;\n"
+ " font-size: 24px;\n"
+ " font-weight: normal;\n"
+ " line-height: 62px;\n"
+ " margin: 0px;\n\n"
+ " a:focus {\n"
+ " outline: none;\n"
+ " }\n\n"
+ " a, a:link, a:visited {\n"
+ " text-decoration: none;\n"
+ " color: #369;\n"
+ " padding-bottom: 2px;\n"
+ " }\n\n"
+ " a:hover {\n"
+ " text-decoration: none;\n"
+ " border-bottom: solid 2px #369;\n"
+ " }\n"
+ " }\n"
+ " }\n\n\n"
+ " #container_messagedujour-innerCt {\n"
+ " vertical-align: middle !important;\n\n"
+ " /* caroussel des messages */\n"
+ " #messagedujour {\n"
+ " margin: 0px;\n"
+ " text-align: left;\n\n"
+ " .viewport {\n"
+ " width: 100%;\n"
+ " max-width: 562px;\n"
+ " height: 30px;\n"
+ " overflow: hidden;\n"
+ " position: relative;\n"
+ " display: inline-block;\n"
+ " vertical-align: middle;\n\n"
+ " .overview {\n"
+ " margin: 0px;\n"
+ " list-style: none;\n"
+ " position: absolute;\n"
+ " left: 0\n"
+ " top: 0;\n\n"
+ " .page {\n"
+ " margin: 0px;\n"
+ " padding: 0px;\n"
+ " float: left;\n"
+ " border: none;\n"
+ " width: 550px;\n\n"
+ " p {\n"
+ " margin: 0px;\n"
+ " padding: 0px;\n"
+ " line-height: 30px;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " .bullets {\n"
+ " /*overflow:hidden;*/\n"
+ " /*height: 1%;*/\n"
+ " list-style: none;\n"
+ " clear: both;\n"
+ " margin: 0px;\n"
+ " display: inline-block;\n"
+ " padding: 0px;\n"
+ " vertical-align: middle;\n\n"
+ " li {\n"
+ " float: left;\n"
+ " }\n\n"
+ " .bullet {\n"
+ " background-color: #fff;\n"
+ " text-decoration: none;\n"
+ " text-align: center;\n"
+ " padding: 0px 4px;\n"
+ " color: #555555;\n"
+ " font-size: 13px;\n"
+ " font-weight: bold;\n"
+ " display: block;\n\n"
+ " &.active {\n"
+ " color: #fff;\n"
+ " background-color: #555555;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " #container_profil {\n\n"
+ " background-image: url(\"../resources/images/header_ident3.png\");\n"
+ " background-repeat: no-repeat;\n"
+ " background-position: right;\n"
+ " font-family: 'sinkin_sans', Arial, sans-serif;\n\n"
+ " #lbl_profil_qui {\n"
+ " .x-form-display-field {\n"
+ " color: #EEE;\n"
+ " font-size: 18px;\n"
+ " text-align: center;\n"
+ " font-family: 'sinkin_sans', Arial, sans-serif;\n"
+ " }\n\n"
+ " .x-form-item-body {\n"
+ " vertical-align: bottom;\n"
+ " }\n"
+ " }\n\n"
+ " #lbl_profil_connexion {\n"
+ " display: table-cell;\n"
+ " vertical-align: middle;\n"
+ " }\n\n"
+ " #login_link:link, #login_link:link, #login_link:visited {\n"
+ " color: #EEE;\n"
+ " font-size: 14px;\n"
+ " text-decoration: none;\n"
+ " }\n"
+ " #login_link:hover{\n"
+ " color: #FFF;\n"
+ " text-decoration: underline;\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n"
+ "#grid_adh_suiviexercice .x-grid-cell-inner {\n"
+ " line-height: 13px;\n"
+ " white-space: normal;\n"
+ "}\n"
+ "#grid_adh_exercices {\n"
+ " .x-grid-cell-inner {\n"
+ " white-space: nowrap;\n"
+ " }\n"
+ "}\n\n"
+ "/* corrige un bug */\n"
+ "#menu_reservationsSemaine .x-grid-cell-inner {\n"
+ " white-space: nowrap;\n"
+ "}\n\n\n"
+ "#about h1 {\n"
+ " font-size: 20px;\n"
+ "}\n\n"
+ "dl.credits, dl.aide, dl.releasenotes {\n"
+ " margin-left: 20px;\n\n"
+ " dt {\n"
+ " font-weight: bold;\n"
+ " font-size: 16px;\n"
+ " margin-top: 30px;\n"
+ " }\n\n"
+ " dd {\n"
+ " margin-left: 25px;\n\n"
+ " strong {\n"
+ " font-weight: 700 !important;\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n\n\n\n"
+ "/* PLANNING ET RESERVATIONS */\n\n"
+ ".activite, .reunion {\n"
+ " &.disponible {\n"
+ " background-color: @coldisp;\n"
+ " border-left: solid 10px @coldisp;\n"
+ " border-right: solid 2px lighten(@coldisp, 30%);\n"
+ " }\n\n"
+ " &.indisponible {\n"
+ " background-color: @colindisp;\n"
+ " border-left: solid 10px @colindisp;\n"
+ " border-right: solid 2px lighten(@colindisp, 30%);\n"
+ " }\n\n"
+ " &.conges {\n"
+ " background-color: @colconges;\n"
+ " border-left: solid 10px @colconges;\n"
+ " border-right: solid 2px lighten(@colconges, 30%);\n"
+ " }\n\n"
+ " &.ferie {\n"
+ " background-color: @colferie;\n"
+ " border-left: solid 10px @colferie;\n"
+ " border-right: solid 2px lighten(@colferie, 30%);\n"
+ " }\n\n"
+ " .contenu {\n"
+ " background-color: rgba(255,255,255,0.90);\n"
+ " padding: 10px;\n"
+ "/* left: 10px; /* /* mettre à 0 pour mettre la bande à droite */\n"
+ " position: relative;\n"
+ " border-bottom: dotted 1px #AAA;\n\n"
+ " .typeactivite, .lieuactivite, .libactivite, .typereunion, .lieureunion, .libreunion, .organisateur, .grptrav, .techniciens {\n"
+ " margin: 5px;\n"
+ " padding: 0;\n"
+ " list-style-type: none;\n"
+ " }\n\n"
+ " .horaireconteneur {\n"
+ " margin: 0px 5px 5px 5px;\n"
+ " }\n\n"
+ " .complementactivite {\n"
+ " position: absolute;\n"
+ " right: 0px;\n"
+ " top: 0px;\n"
+ " width: 12px;\n"
+ " opacity: 0.75;\n"
+ " }\n\n"
+ " .conteneur_trajet {\n"
+ " border: solid 2px #CCC;\n"
+ " background-color: #FFF;\n"
+ " margin-top: 10px;\n"
+ " padding: 5px;\n\n"
+ " a img {\n"
+ " margin-right: 5px;\n"
+ " }\n\n"
+ " a, a:link, a:visited {\n"
+ " color: #16529C;\n"
+ " text-decoration: none;\n"
+ " }\n\n"
+ " a:hover, a:focus {\n"
+ " text-decoration: underline;\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " &:last-child .contenu {\n"
+ " border-bottom: none;\n"
+ " }\n\n"
+ " .horaire, .special {\n"
+ " font-weight: bold;\n\n"
+ " &.debut:after {\n"
+ " content: \" - \";\n"
+ " }\n"
+ " }\n\n"
+ " .special:after {\n"
+ " content: \" : \";\n"
+ " }\n\n"
+ " .organisateur a, .techniciens a {\n"
+ " color: #16529C;\n"
+ " text-decoration: none;\n\n"
+ " &:hover, &:focus {\n"
+ " text-decoration: underline;\n"
+ " }\n"
+ " }\n\n"
+ " ul.grptrav li, ul.techniciens li {\n"
+ " width: 100%;\n"
+ " min-height: 18px;\n\n"
+ " .mailtec {\n"
+ " margin: 0px 6px;\n"
+ " }\n\n"
+ " .alltecs {\n"
+ " font-weight: bolder;\n"
+ " }\n"
+ " }\n\n"
+ " span.organisateur {\n"
+ " display: block;\n\n"
+ " .mailtec {\n"
+ " margin: 0px 6px;\n"
+ " }\n\n"
+ " }\n\n"
+ " .lieuactivite, .libactivite {\n"
+ " display: block;\n"
+ " color: #999;\n"
+ " font-size: small;\n"
+ " }\n\n"
+ " ol.visites {\n"
+ " padding: 10px;\n"
+ " font-size: 11px;\n"
+ " margin-left: 10px;\n\n"
+ " li {\n"
+ " list-style: decimal;\n\n"
+ " a {\n"
+ " color: #16529C;\n"
+ " text-decoration: none;\n\n"
+ " &.trajet {\n"
+ " display: inline-block;\n"
+ " margin: 5px 0px 15px 36px;\n"
+ " }\n\n"
+ " &:hover, &:focus {\n"
+ " text-decoration: underline;\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " li:last-child a.trajet{\n"
+ " margin-bottom: 0px;\n"
+ " }\n"
+ " }\n\n"
+ " &:last-child {\n"
+ " border-bottom: none;\n"
+ " }\n"
+ "}\n\n"
+ "#menu_planning,\n"
+ "#menu_reservationsSemaine {\n\n"
+ " .x-grid-data-row .x-grid-cell {\n"
+ " border-top: 0px !important;\n"
+ " border-bottom: 1px solid #D2D2D2 !important;\n"
+ " }\n\n"
+ " .x-grid-rowbody:empty {\n"
+ " padding: 0;\n"
+ " }\n\n"
+ " .x-grid-with-row-lines .x-grid-cell {\n"
+ " border-top-width: 0px !important;\n"
+ " }\n\n"
+ " .x-grid-group-hd {\n"
+ " padding: 0;\n"
+ " border-top: 2px solid #99BBE8;\n"
+ " border-bottom: none;\n\n"
+ " .x-grid-group-title {\n"
+ " font-size: 15px;\n"
+ " line-height: 26px;\n"
+ " height: 26px;\n"
+ " white-space: normal;\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n\n\n\n\n\n\n\n\n"
+ "/* CONGES et RESERVATIONS ANNUELLES */\n"
+ "#grid_conges {\n"
+ " .journee {\n"
+ " &.ferie, &.weekend, &.ouvre, &.rien {\n"
+ " .contenu {\n"
+ " line-height: 32px;\n"
+ " }\n"
+ " }\n"
+ " &.conge, &.ferie {\n"
+ " .contenu {\n"
+ " line-height: 16px;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ "}\n"
+ "#grid_reservations_annee {\n"
+ " .journee {\n"
+ " .contenu {\n"
+ " height: 64px;\n"
+ " .toutseul {\n"
+ " line-height: 64px;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ "}\n\n"
+ "#grid_conges, #grid_reservations_annee {\n\n"
+ " /* ruptures */\n"
+ " .x-grid-group-hd .x-grid-group-title {\n"
+ " padding: 0px 5px 0px 50px;\n"
+ " }\n\n"
+ " .x-column-header-text {\n"
+ " font-weight: bold;\n"
+ " }\n\n"
+ " /* cellules */\n"
+ " .x-grid-cell {\n"
+ " border-top: solid 1px #fff !important;\n"
+ " border-bottom: none;\n"
+ " background-color: #BFE5BF;\n"
+ " }\n\n"
+ " .journee {\n\n"
+ " &.ferie, &.weekend, &.ouvre, &.rien {\n\n"
+ " .contenu {\n"
+ " background-color: rgba(255, 255, 255, 0.75);\n"
+ " width: 98%;\n"
+ " left: 0px;\n"
+ " text-align: center;\n\n"
+ " vertical-align: middle;\n\n\n"
+ " a, a:link, a:visited {\n"
+ " text-decoration: none;\n"
+ " color: #3C4B83;\n"
+ " margin-bottom: 5px;\n"
+ " font-weight: bold;\n"
+ " }\n\n"
+ " a:hover {\n"
+ " text-decoration: underline;\n"
+ " }\n\n"
+ " p {\n"
+ " margin: 0;\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " &.rien {\n"
+ " background-color: @colrien;\n"
+ " }\n\n"
+ " &.weekend {\n"
+ " background-color: @colweekend;\n"
+ " }\n\n"
+ " &.ouvre {\n"
+ " background-color: @coldisp;\n"
+ " }\n\n"
+ " &.rsvt {\n"
+ " background-color: @colreservations;\n\n"
+ " .contenu {\n"
+ " .descjourhoraires {\n"
+ " color: @colhoraires;\n"
+ " font-weight: bold;\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " &.conge {\n"
+ " background-color: @colconges;\n"
+ " }\n\n"
+ " &.ferie {\n"
+ " background-color: @colferie;\n"
+ " }\n\n"
+ " &.conge, &.rsvt {\n\n"
+ " img {\n"
+ " float: left;\n"
+ " margin: 1px -16px 1px 1px;\n\n"
+ " }\n\n"
+ " &.matin, &.aprem {\n"
+ " border-left: dotted 1px #AAA;\n\n"
+ " .contenu {\n"
+ " width: 96%;\n"
+ " }\n"
+ " }\n\n"
+ " &.matin {\n"
+ " width: 49%;\n"
+ " float: left;\n"
+ " }\n\n"
+ " &.aprem {\n"
+ " width: 51%;\n"
+ " float: right;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n\n"
+ "/* Conges par secteurs */\n"
+ "#grid_congesSecteur {\n"
+ " .x-grid-cell-inner {\n"
+ " height: 40px;\n\n"
+ " .journee {\n"
+ " display: block;\n"
+ " width: 100%;\n"
+ " height: 100%;\n"
+ " border-style: dotted !important;\n"
+ " border-width: 1px !important;\n\n"
+ "/* &.ouvre {\n"
+ " background-color: #EEE;\n"
+ " }*/\n\n"
+ " &.ferie {\n"
+ " background-color: #9CF;\n"
+ " border-color: #00F;\n"
+ " }\n\n"
+ " &.weekend {\n"
+ "/* background-color: #F28282;\n"
+ " border-color: #000;\n"
+ "*/ background-color: rgba(200, 200, 200, 0.17);\n"
+ " border: none !important;\n"
+ " }\n\n"
+ " &.conge {\n"
+ " background-color: #FAA;\n"
+ " border-color: #F00;\n\n"
+ " &.jour {\n\n"
+ " }\n\n"
+ " &.matin {\n"
+ " width: 50%;\n"
+ " float: left;\n"
+ " /*\n"
+ " height: 50%;\n"
+ " margin-bottom: 50%;\n"
+ " */\n"
+ " background-color: #FFAA66;\n"
+ " }\n\n"
+ " &.aprem {\n"
+ " width: 50%;\n"
+ " float: right;\n"
+ " /*\n"
+ " height: 50%;\n"
+ " margin-top: 50%;\n"
+ " */\n"
+ " background-color: #FF7575;\n"
+ " }\n"
+ " }\n\n"
+ " &.travail {\n"
+ " background-color: #AFA;\n"
+ " border-color: #0F0;\n"
+ " }\n\n"
+ " &.rien {\n"
+ " border: none !important;\n"
+ " }\n\n"
+ " }\n\n"
+ " .nom_technicien {\n"
+ " text-align: right;\n"
+ " margin-right: 5px;\n\n"
+ " a {\n"
+ " text-decoration: none;\n\n"
+ " &:link, &:visited {\n"
+ " color: #3C4B83\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " .actions_technicien {\n"
+ " float: right;\n"
+ " padding: 5px;\n"
+ " }\n"
+ " }\n\n"
+ " .x-column-header {\n"
+ " &.aujourdhui, &.ferie, &.weekend, &.aujourdhui .x-column-header-text, &.ferie .x-column-header-text, &.weekend .x-column-header-text {\n"
+ " font-weight: normal;\n"
+ " color: #000;\n"
+ " }\n\n"
+ " &.aujourdhui {\n"
+ " .degradev (#F88, #F00);\n"
+ " }\n\n"
+ " &.ferie {\n"
+ " .degradev (#E9E9FF, #D3D4FF);\n"
+ " }\n\n"
+ " &.weekend {\n"
+ " .degradev (#E9E9E9, #D3D4D6);\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n"
+ "/* ACCUEIL */\n"
+ "#grid_activite {\n"
+ "// .x-grid-row .x-grid-cell {\n"
+ " .x-grid-data-row .x-grid-cell {\n"
+ " vertical-align: middle;\n"
+ " }\n"
+ "}\n\n"
+ "/*.x-grid-row .x-grid-cell .aujourdhui {*/\n"
+ ".x-grid-data-row .x-grid-cell.aujourdhui {\n"
+ " .activite, .reunion {\n"
+ " .contenu {\n"
+ " background-color: rgba(255, 255, 255, 0.85);\n"
+ " }\n"
+ " }\n"
+ "}\n\n"
+ ".lbl_sem {\n"
+ " font-size: 24px;\n"
+ " font-weight: bold;\n"
+ "}\n\n\n"
+ ".x-column-header {\n"
+ " &.aujourdhui, &.ferie, &.weekend, &.aujourdhui .x-column-header-text, &.ferie .x-column-header-text, &.weekend .x-column-header-text {\n"
+ " font-weight: bold;\n"
+ " color: #FFF;\n"
+ " .x-column-header-over {\n"
+ " color: #000;\n"
+ " }\n"
+ " }\n\n"
+ " &.aujourdhui {\n"
+ " .degradev (#F88, #F00);\n"
+ " }\n\n"
+ " &.ferie {\n"
+ " .degradev (#88F, #00F);\n"
+ " }\n\n"
+ " &.weekend {\n"
+ " .degradev (#F88, #F00);\n"
+ " }\n"
+ "}\n\n"
+ ".action.email, .action.conges {\n"
+ " margin-right: 10px;\n"
+ " margin-top: 5px;\n"
+ " float: right;\n"
+ "}\n\n"
+ ".x-grid-cell-inner,\n"
+ ".x-grid-group-hd {\n"
+ " .x-grid-group-title .technicien, .x-grid-group-title .materiel {\n"
+ " display: inline-block;\n"
+ " width: 100%;\n\n"
+ " .nomprenom, .description {\n"
+ " display: inline-block;\n"
+ " padding-left: 27px;\n\n"
+ " img {\n"
+ " vertical-align: middle;\n"
+ " margin: 0px 2px 3px 0px;\n"
+ " }\n"
+ " }\n\n"
+ " .actions {\n"
+ " display: inline-block;\n"
+ " float: right;\n\n"
+ " .secteur, .tpstrav {\n"
+ " margin-right: 20px;\n"
+ " display: inline-block;\n"
+ " }\n\n"
+ " .tpstrav {\n"
+ " min-width: 50px;\n"
+ " }\n\n"
+ " .secteur {\n"
+ " min-width: 180px;\n"
+ " }\n\n"
+ " .code {\n"
+ " min-width: 40px;\n"
+ " display: inline-block;\n"
+ " }\n\n"
+ " .tpstrav + a {\n"
+ " min-width: 90px;\n"
+ " }\n\n"
+ " .tpstrav + a, .tpstrav + a {\n"
+ " display: inline-block;\n"
+ " }\n\n"
+ " .telephone {\n"
+ " &.bureau {\n"
+ " background-image: url(\"../resources/images/telephone_16x16.png\");\n"
+ " min-width: 70px;\n"
+ " }\n\n"
+ " &.portable {\n"
+ " background-image: url(\"../resources/images/phone_16x16.png\");\n"
+ " min-width: 106px;\n"
+ " }\n"
+ " background-position: 0 50%;\n"
+ " background-repeat: no-repeat;\n"
+ " padding-left: 20px;\n"
+ " display: inline-block;\n"
+ " }\n\n"
+ " .envoisms {\n"
+ " margin-right: 20px;\n\n"
+ " img {\n"
+ " vertical-align: middle;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " > .technicien, > .materiel {\n"
+ " display: none;\n"
+ " }\n\n"
+ " > .email {\n"
+ " float: right;\n"
+ " margin: 5px;\n"
+ " }\n"
+ "}\n\n"
+ "#grid_social_contrats,\n"
+ "#grid_social_dashboard,\n"
+ "#grid_social_historique,\n"
+ "#grid_suivi_donnees_journalieres,\n"
+ "#grid_suivi_donnees_hebdomadaires,\n"
+ "#form_suivi_donnees_mensuelles,\n"
+ "#grid_suivi_synthese {\n"
+ " .x-grid-cell-inner { /*,\n"
+ " .x-grid-group-hd {*/\n"
+ " padding: 2px 6px 4px !important;\n"
+ " }\n\n"
+ "// .x-grid-row, .x-grid-row-summary {\n"
+ " .x-grid-data-row, .x-grid-row-summary {\n"
+ " height: 24px;\n\n"
+ " .x-grid-cell {\n"
+ " vertical-align: middle;\n"
+ " }\n\n"
+ " &.weekend {\n"
+ " .x-grid-cell-inner {\n"
+ " color: #600;\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " .x-grid-row-editor {\n"
+ " height: 29px !important;\n\n"
+ " .x-panel-body {\n"
+ " height: 29px !important;\n"
+ " display: table-cell;\n"
+ " vertical-align: middle;\n\n"
+ " .x-form-text,\n"
+ " .x-form-display-field {\n"
+ " text-align: center;\n"
+ " font-size: 13px;\n"
+ " }\n"
+ " }\n\n"
+ " .x-grid-row-editor-buttons {\n"
+ " top: 28px !important;\n"
+ " }\n"
+ " }\n\n"
+ " #txt_suivi_commentaire .x-form-item-label {\n"
+ " margin-bottom: 5px;\n"
+ " }\n\n"
+ " #lbl_suivi_erreur-inputEl {\n"
+ " color: #C00;\n"
+ " font-weight: bold;\n"
+ " }\n"
+ "}\n\n"
+ "// annule le padding pour les groupes et remplace par un padding pour le texte des groupes\n"
+ "#grid_social_contrats {\n"
+ " .x-grid-group-hd {\n"
+ " padding: 0px !important;\n\n"
+ " .x-grid-group-title {\n"
+ " padding: 2px 6px 4px !important;\n"
+ " }\n"
+ " }\n"
+ "}\n\n"
+ "#grid_social_dashboard {\n"
+ " .x-grid-group-hd {\n"
+ " padding-left: 8px !important;\n"
+ " background-color: #2F323F !important;\n"
+ " .degradeh(#2f323f, #2e65a7, #2f323f);\n\n"
+ " .x-grid-group-title {\n"
+ " height: 28px;\n"
+ " line-height: 28px;\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n"
+ "li img.suivi {\n"
+ " float: right;\n"
+ " margin-top: 2px;\n"
+ "}\n\n"
+ "table.x-field {\n"
+ " input[type=text] {\n"
+ " background-repeat: no-repeat;\n"
+ " background-position: right center;\n"
+ " background-origin: content-box;\n"
+ " padding-right: 2px;\n"
+ " }\n\n"
+ " &.A {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_A.png\");\n"
+ " }\n"
+ " }\n"
+ " &.F {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_F.png\");\n"
+ " }\n"
+ " }\n"
+ " &.N {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_N.png\");\n"
+ " }\n"
+ " }\n"
+ " &.P {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_P.png\");\n"
+ " }\n"
+ " }\n"
+ " &.R {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_R.png\");\n"
+ " }\n"
+ " }\n"
+ " &.V {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_V.png\");\n"
+ " }\n"
+ " }\n"
+ " &.X {\n"
+ " input[type=text] {\n"
+ " background-image: url(\"../resources/images/etat_X.png\");\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n\n"
+ "#menu_adherent {\n\n\n"
+ " .x-grid-group-title {\n"
+ " padding: 0px 10px;\n"
+ " }\n\n\n\n"
+ " //mot de passe\n"
+ " #grid_adh_connexionsinternet {\n"
+ " .x-grid-cell-headerId-col_adh_CIN_PASSE,\n"
+ " .x-grid-cell-headerId-col_adh_CIN_ID {\n"
+ " .x-grid-cell-inner {\n"
+ " font-family: \"Courier New\", Courier, monospace !important;\n"
+ " text-align: center !important;\n"
+ " }\n"
+ " }\n\n"
+ " .x-grid-cell-inner {\n"
+ " line-height: 18px;\n"
+ " white-space: normal;\n"
+ " }\n"
+ " }\n\n\n\n\n"
+ " #grid_techniciens .x-grid-cell-inner {\n"
+ " padding: 2px !important;\n"
+ " }\n\n"
+ " /*\n"
+ " #img_adh_facturation_etat {\n"
+ " margin: 5px 5px 5px 20px;\n"
+ " }\n"
+ " */\n\n"
+ " /*\n"
+ " #fieldset_adh_facturation td {\n"
+ " vertical-align: middle;\n"
+ " }\n"
+ " */\n\n"
+ " #grid_adh_exercices {\n"
+ " .x-grid-cell {\n"
+ " vertical-align: middle;\n\n"
+ " .x-grid-cell-inner {\n"
+ " height: 24px;\n"
+ " line-height: 24px;\n"
+ " padding: 2px !important;\n\n"
+ " .jauge {\n"
+ " /*margin-top: 1px;*/\n\n\n"
+ " .green_progress_bar .x-progress-bar {\n"
+ " .degradev (#9AC795, #79BF71 50%, #69BA5F 51%, #58B54E);\n"
+ " background-color: #68BA5F;\n"
+ " border-right-color: #5BA852;\n"
+ " border-top-color: #AAC7A7;\n"
+ " }\n\n\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " /*\n"
+ " #form_adh_etatcivil {\n"
+ " #txt_adh_etatcivil_designation {\n"
+ " .x-form-display-field {\n"
+ " font-weight: bold;\n"
+ " font-size: 18px;\n"
+ " padding: 0px;\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " */\n\n"
+ " #grid_adh_techniciens, #form_adh_etatcivil, #grid_adh_associes, #grid_adh_interventions {\n"
+ " .champ_email, .rien {\n"
+ " text-decoration: none;\n\n"
+ " /*float: right;*/\n"
+ " img {\n"
+ " display: inline-block;\n"
+ " }\n"
+ " }\n\n"
+ " .champ_email_text .x-form-display-field {\n"
+ " /*padding: 0px;*/\n"
+ " margin: 0px;\n\n"
+ " img {\n"
+ " margin-left: 10px;\n"
+ " position: relative;\n"
+ " bottom: -3px;\n"
+ " }\n"
+ " }\n"
+ " }\n\n"
+ " #grid_adh_interventions {\n"
+ " .x-grid-cell-inner {\n"
+ " white-space: normal !important;\n"
+ " }\n"
+ " }\n"
+ "}\n\n"
+ ".aucuneactivite .x-grid-rowbody {\n"
+ " color: #AAA;\n"
+ " padding: 0.75em;\n"
+ " text-align: center;\n"
+ "}\n"
+ ".activite.aucuneactivite, .reunion.aucuneactivite {\n"
+ " color: #AAA;\n"
+ " text-align: center;\n"
+ " font: normal normal 400 11px/13px Tahoma;\n"
+ "}\n\n\n\n"
+ ".x-grid-group-title {\n"
+ " .headertec, .headerreunion {\n"
+ " padding: 0px 5px;\n"
+ " height: 26px;\n\n"
+ " &.ferme, &.ouvert {\n"
+ " background-position: 4px 50%;\n"
+ " background-repeat: no-repeat;\n"
+ " }\n\n"
+ " background-image: none;\n\n"
+ " &.ferme {\n"
+ " background-image: url(\"../resources/images/expand_16x16.png\");\n"
+ " }\n\n"
+ " &.ouvert {\n"
+ " background-image: url(\"../resources/images/collapse_16x16.png\");\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n"
+ "#grandlivre_grid {\n"
+ "// .x-grid-row .x-grid-cell-inner {\n"
+ " .x-grid-data-row .x-grid-cell-inner {\n"
+ " font-size: 13px;\n"
+ " padding: 5px !important;\n"
+ " }\n\n"
+ " .x-grid-group-title {\n"
+ " font-size: 13px;\n"
+ " padding: 15px 0px 3px 20px !important;\n"
+ " line-height: normal;\n"
+ " height: auto;\n"
+ " border-top: 2px solid #99BBE8;\n"
+ " background-color: #E5FFCC !important;\n"
+ " color: #3764A0;\n"
+ " background-image: none;\n"
+ " }\n\n"
+ " .cgo_signe {\n"
+ " float: left;\n"
+ " margin-left: 5px;\n"
+ " }\n\n"
+ " .cgo_debit {\n"
+ " .cgo_currency {\n"
+ " margin-right: 30px;\n"
+ " color: #600;\n"
+ " }\n"
+ " }\n\n"
+ " .cgo_credit {\n"
+ " .cgo_currency {\n"
+ " margin-right: 5px;\n"
+ " color: #040;\n"
+ " }\n"
+ " }\n\n"
+ " .x-grid-row.gras .x-grid-cell-inner,\n"
+ " .x-grid-data-row.gras .x-grid-cell-inner {\n"
+ " font-size: 13px;\n"
+ " font-weight: 700 !important;\n"
+ " }\n"
+ "}\n\n"
+ "#menu_planning, #menu_reservationsSemaine {\n"
+ " .x-grid-group-hd:hover {\n"
+ " cursor: pointer;\n"
+ " }\n"
+ "}\n\n"
+ "#menupanel .x-grid-cell-inner {\n"
+ " font-size: 13px;\n"
+ " line-height: 13px;\n\n"
+ " .x-tree-node-text {\n"
+ " font-size: 13px;\n"
+ " line-height: 14px;\n"
+ " }\n"
+ "}\n\n"
+ ".modifiable:hover {\n"
+ " background-image: url( \"../resources/images/pencil_16x16.png\" );\n"
+ " background-repeat: no-repeat;\n"
+ " background-position: 1% center;\n"
+ " padding-left: 24px;\n"
+ "}\n\n"
+ ".marge_droite_5px {\n"
+ " margin-right: 5px;\n"
+ "}\n\n"
+ "#lbl_suivi_recap, #lbl_suivi_commande {\n\n"
+ " h3 {\n"
+ " margin: 0px;\n"
+ " vertical-align: middle;\n"
+ " line-height: 25px;\n\n"
+ " &.big {\n"
+ " line-height: 50px;\n"
+ " }\n"
+ " }\n\n"
+ " span.salarie, span.mois, span.refcom, span.statutcom {\n"
+ " color: #900;\n"
+ " }\n"
+ "}\n\n"
+ "/* popup qui apparait dans le planning lors du survol d'un technicien */\n"
+ "div.pop-up {\n"
+ " display: none;\n"
+ " position: fixed;\n"
+ " padding: 0px 10px 10px 10px;\n"
+ " background: #eeeeee;\n"
+ " opacity: 1.0;\n"
+ " color: #000000;\n"
+ " border: 1px solid #1a1a1a;\n"
+ " z-index: 1000;\n\n"
+ " .entete, .contenant {\n"
+ " margin: 0px;\n"
+ " }\n\n"
+ " .entete {\n"
+ " .fonctions {\n"
+ " margin: 0px;\n"
+ " padding: 0px;\n"
+ " font-size: 11px;\n"
+ " list-style-type: none;\n"
+ " text-align: center\n"
+ " }\n"
+ " }\n\n"
+ " .contenu {\n\n"
+ " /*background-color: salmon;*/\n\n"
+ " .photo {\n"
+ " display: block; /* pour enlever l'espace en dessous de l'image */\n"
+ " }\n"
+ " }\n"
+ "}\n\n"
+ ".x-selectable, .x-selectable * {\n"
+ " -moz-user-select: text!important;\n"
+ " -khtml-user-select: text!important;\n"
+ "}\n\n\n\n"
+ "#grid_congesStats {\n"
+ " .premiereannee {\n"
+ " &.important {\n"
+ " font-weight: bold;\n"
+ " }\n"
+ " }\n\n"
+ " .anneessuivantes {\n"
+ " /*display: none;*/\n"
+ " .subitem {\n"
+ " &.n-0 {\n"
+ " background-color: rgba(255, 255, 255, 0.3);\n"
+ " }\n\n"
+ " &.n-1 {\n"
+ " background-color: rgba(255, 255, 255, 0.4);\n"
+ " }\n\n"
+ " &.n-2 {\n"
+ " background-color: rgba(255, 255, 255, 0.5);\n"
+ " }\n\n"
+ " &.n-3 {\n"
+ " background-color: rgba(255, 255, 255, 0.6);\n"
+ " }\n\n"
+ " &.n-4 {\n"
+ " background-color: rgba(255, 255, 255, 0.7);\n"
+ " }\n\n"
+ " &.n-5 {\n"
+ " background-color: rgba(255, 255, 255, 0.8);\n"
+ " }\n\n"
+ " &.n-6 {\n"
+ " background-color: rgba(255, 255, 255, 0.9);\n"
+ " }\n"
+ " }\n\n"
+ " }\n\n"
+ " .depart {\n"
+ " background-color: rgba(255, 0, 0, 0.2);\n"
+ " }\n\n"
+ " .intermediaire {\n"
+ " background-color: rgba(255, 255, 0, 0.2);\n"
+ " }\n\n"
+ " .arrivee {\n"
+ " background-color: rgba(0, 255, 0, 0.2);\n"
+ " }\n\n"
+ " .x-docked-summary {\n"
+ " .x-grid-cell-inner {\n"
+ " height: 32px;\n"
+ " line-height: 32px;\n"
+ " }\n"
+ " }\n"
+ "}\n\n\n\n"
+ ".listright {\n"
+ " float: right;\n"
+ " font-family: \"Courier New\", \"Courier\", monospace;\n"
+ " font-weight: 700;\n"
+ " color: #888;\n"
+ "}\n\n"
+ "img.listright {\n"
+ " margin-left: 10px;\n"
+ "}\n\n\n"
+ ".listeadhitem {\n"
+ " display: inline-block;\n"
+ " width: 320px;\n"
+ "}\n\n\n\n\n"
+ "/* compatibilité avec Selectize */\n"
+ "#grid_techniciens {\n"
+ " .x-docked {\n"
+ " z-index: auto;\n"
+ " }\n"
+ "}\n"
+ "#toolbar_techniciens {\n"
+ " &.x-docked {\n"
+ " z-index: auto;\n"
+ " }\n\n"
+ " &.x-box-layout-ct {\n"
+ " overflow: visible;\n"
+ " }\n\n"
+ " #toolbar_techniciens-innerCt {\n"
+ " &.x-box-inner {\n"
+ " overflow: visible;\n"
+ " }\n"
+ " }\n"
+ "}\n"
+ ".selectize-control.cgo-native-text-input .selectize-dropdown {\n"
+ " .nomprenom, .email {\n"
+ " font-size: 12px;\n"
+ " opacity: 0.5;\n"
+ " float: right;\n"
+ " }\n\n"
+ " .nomprenom {\n"
+ " width: 150px;\n"
+ " }\n\n"
+ " .email {\n"
+ " width: 160px;\n"
+ " }\n"
+ "}\n\n\n"
+ ".negatif {\n"
+ " color: #F00;\n"
+ " font-weight: bold;\n"
+ "}\n\n"
+ "pre.insee {\n"
+ " margin: 0px 0px 0px 10px;\n"
+ " font-size: 0.85em;\n"
+ " color: #666;\n"
+ " .degradeh( rgba(255,255,255,0) 0%, #E6E6E6 50%, rgba(255,255,255,0) 100% );\n"
+ "}\n\n"
+ "pre.identifiant {\n"
+ " margin: 0px;\n"
+ "}\n\n"
+ "span.invalide {\n"
+ " color: red;\n"
+ "}\n\n"
+ "img.centrelignenormale {\n"
+ " position: relative;\n"
+ " top: 2px;\n"
+ "}\n";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html