Modifier une Regex

Eléphanteau du PHP | 25 Messages

24 juil. 2017, 14:33

Bonjour,

En se basant sur cette 'phrase' :
"updi(event,'2017-07-24 11:20 CEST (T+ 0:10)<br>Distances:&nbsp;3.5nm/2751.0nm<br><b>Wind:</b> 197&deg; 14.7 kt (<b>TWA 120&deg;</b>)<br><b>Heading:</b> 77&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 20.81 kts','220px')"
La regex suivante :
const pattern = /updi\(event,'(.*)<br>Distances:(.*)<br><b>Wind:<\/b>(.*)\(<b>TWA(.*)<\/b>\)<br><b>Heading:<\/b>(.*)<b>Sail:<\/b>(.*)<br><b>Boat Speed:<\/b>(.*)'/g;
Tirée du code suivant :
"use strict";

const pattern = /updi\(event,'(.*)<br>Distances:(.*)<br><b>Wind:<\/b>(.*)\(<b>TWA(.*)<\/b>\)<br><b>Heading:<\/b>(.*)<b>Sail:<\/b>(.*)<br><b>Boat Speed:<\/b>(.*)'/g;
const points = [];
try {
    Array.prototype.slice.call(document.getElementsByTagName("img")).forEach(function (element) {
        var event = element.getAttribute('onmouseover');
        if (event !== null) {
            var match = pattern.exec(event);
            const datetime = match[1];
            const distance = match[2];
            const wind = match[3];
            const twa = match[4];
            const btw = match[5];
            const sail = match[6];
            const stw = match[7];
            points.push({
                datetime: datetime,
                distance: distance,
                wind: wind,
                twa: twa,
                btw: btw,
                sail: sail,
                stw: stw
            });
            pattern.lastIndex = 0;
        }

    });

    chrome.runtime.sendMessage(points);
} catch (e){
    chrome.runtime.sendMessage([]);
}
Me donne :
Image


J'aimerais la modifier pour quelle me donne ceci :
Image

J'ai déjà fait la modification du script, il me reste la regex mais je n'y arrive pas ...
Tous mes essais se solde par un échec ...
Voici le script modifié (sans la regex ):
"use strict";

const pattern = ;
const points = [];
try {
    Array.prototype.slice.call(document.getElementsByTagName("img")).forEach(function (element) {
        var event = element.getAttribute('onmouseover');
        if (event !== null) {
            var match = pattern.exec(event);
            const date = match[1];
            const time = match[2];
            const ttw = match[4];
            const dtw = match[5];
            const twd = match[7];
            const tws = match[8];
            const twa = match[9];
            const btw = match[10];
            const sail = match[11];
            const stw = match[12];
            points.push({
                date: date,
                time: time,
                ttw: ttw,
                dtw: dtw,
                twd: twd,
                tws: tws,
                twa: twa,
                btw: btw,
                sail: sail,
                stw: stw
            });
            pattern.lastIndex = 0;
        }

    });

    chrome.runtime.sendMessage(points);
} catch (e){
    chrome.runtime.sendMessage([]);
}

En reprenant la 'phrase' du début ça correspond à ceci :
"updi(event,'[1] [2] [3] ([4])<br>Distances:&nbsp;[5]/[6]<br><b>Wind:</b> [7]; [8] (<b>TWA [9];</b>)<br><b>Heading:</b> [10];<b>Sail:</b> [11]<br><b>Boat Speed:</b> [12]','220px')"

Un coup de main serait le bienvenu je commence à devenir fou avec cette regex ...
Merci

Mammouth du PHP | 847 Messages

24 juil. 2017, 14:55

voir https://regex101.com/r/rItkul/1
mais il faudrait d'autres lignes de contenu pour voir ce qui change, ce qui est fixe, s'il faut capturer les valeurs avec l'unité ou si l'unité ne change jamais.

Eléphanteau du PHP | 25 Messages

24 juil. 2017, 15:13

voir https://regex101.com/r/rItkul/1
mais il faudrait d'autres lignes de contenu pour voir ce qui change, ce qui est fixe, s'il faut capturer les valeurs avec l'unité ou si l'unité ne change jamais.
Merci or 1 je ne connaissais pas cette outil :)
Toutes les lignes sont du même type, je te mets ici une page du code source exploité.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1.0, minimum-scale=1.0" />
<title>Atlantic Record</title>
<link href="div.css?42" rel="stylesheet" type="text/css">
<!--[if lt IE 7]>
<link href="div6.css?23" rel="stylesheet" type="text/css">
<![endif]-->
<!--[if lt IE 9]>
<style type="text/css">
.ie {
	display: none;
}
</style>
<![endif]-->
<script type="text/javascript">
var scale = 256;
var session_id = "f169f64497e491553ccb1782a59dedd2";
var days = 5;
var boat_lat = 38.9330555555556;
var boat_lon = -67.9911111111111;
var goal_lat = 49.9401;
var goal_lon = -5.09781;
var scroll_x = 16696; 
var scroll_y = -12908; 
var boat_heading = 60.2539537543916;
var iso_id = '76/b291495969e37202559ef79faa340120256'; 
var iso_minx = -49; 
var iso_miny = 32; 
var iso_maxx = -30; 
var iso_maxy = 37;
var wind_time = 0;
var grib_steps = 2;
var windbase = 1500897600;
var datastamp = '06+237';
var mobile = 0;
</script>

<SCRIPT type="text/javascript" src="util.js?30" defer></SCRIPT>

<SCRIPT type="text/javascript" src="iwind.js?32" defer></SCRIPT>

<SCRIPT type="text/javascript" src="cwind.js?30" defer></SCRIPT>
<SCRIPT type="text/javascript" src="scroll.js?32" defer></SCRIPT>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-27385643-1', 'zezo.org');
  ga('send', 'pageview');

</script>

</head>
<body onload="init()">
<div style="position: relative; top:0px; width:100%;">
 
<div id="fs_menubar">
&nbsp;<a href="/index.html" style="color:black;"><u>H</u>ome</a>&nbsp;&nbsp;
<a href="/forum.pl" style="color:black;"><u>F</u>orum</a>&nbsp;&nbsp;
<a href="/fb.html" style="color:black;"><u>C</u>ontact</a>&nbsp;&nbsp;
<a href="/qa.html" style="color:black;"><u>Q</u>&amp;A</a>&nbsp;&nbsp;
<a href="/about.html" style="color:black;"><u>A</u>bout</a>&nbsp;
<a href="polars.html?pro=0" style="color:black;" target="vor_polars"><u>P</u>olars</a>&nbsp;|
&nbsp;
<!-- Announcement area --> 
<!--font size="-1"> <Would you like to support the project by 
<a style="text-decoration:underline;" href="about.html#donate">donating</a> 
a small amount for hardware upgrade? Read the 
<a style="text-decoration:underline;" href="about.html#tech">full story</a>. -->
<b>Atlantic Record</b>
<span style="color:red">New! </span><a style="text-decoration:underline;" href="http://sail.zezo.org/forum.pl?tid=5969">6% speed adjustment and other changes</a>
<div style="float:right"><a href="about.html#donate"><img src="http://i.zezo.org/img/btn_donate_SM.gif"></a></div>
</div>

<div id="new_nav">
<button class="nnav" onmousedown="zoom_out();" title="Zoom Out"><b>&minus;</b></button><select class="nnav" title="Zoom level" onchange="select_zoom(this);">

	<option value="8" >1%</option>

	<option value="16" >2%</option>

	<option value="32" >5%</option>

	<option value="64" >10%</option>

	<option value="128" >25%</option>

	<option value="256" selected>50%</option>

	<option value="512" >100%</option>

</select><button class="nnav" onmousedown="zoom_in();" title="Zoom In" style="margin-right:20px;"><b>+</b></button>
<button class="nnav pad2 ie" onmousedown="toggle_tracks();" title="Toggle tracks"><img id="track_icon" style="vertical-align: text-top;" width="16px" height="16px" src="img/icon_track_gray.png"></button>
<button class="nnav pad2" onmousedown="wind_display(0);" title="None"><img style="vertical-align: text-top;" width="16px" height="16px" src="img/icon_n.png"></button><button class="nnav pad2" onmousedown="wind_display(1);" title="Black barbs"><img style="vertical-align: text-top;" width="16px" height="16px" src="img/icon_bb.png"></button><button class="nnav pad2 ie" onmousedown="wind_display(2);" title="Color barbs"><img style="vertical-align: text-top;" width="16px" height="16px" src="img/icon_cb.png"></button><button class="nnav pad2 ie" onmousedown="wind_display(3);" title="Arrows"><img style="vertical-align: text-top;" width="16px" height="16px" src="img/icon_a.png"></button>
<button title="Previous  wind" class="nnav" onmousedown="prev_wind();">&lt;</button><select id="hours" class="nnav" title="Wind time" onchange="show_wind(this.selectedIndex * 3);">

	<option selected>Now</option>

	<option >+3 h</option>

	<option >+6 h</option>

	<option >+9 h</option>

	<option >+12 h</option>

	<option >+15 h</option>

	<option >+18 h</option>

	<option >+21 h</option>

	<option >+24 h</option>

	<option >+27 h</option>

	<option >+30 h</option>

	<option >+33 h</option>

	<option >+36 h</option>

	<option >+39 h</option>

	<option >+42 h</option>

	<option >+45 h</option>

	<option >+48 h</option>

	<option >+51 h</option>

	<option >+54 h</option>

	<option >+57 h</option>

	<option >+60 h</option>

	<option >+63 h</option>

	<option >+66 h</option>

	<option >+69 h</option>

	<option >+72 h</option>

	<option >+75 h</option>

	<option >+78 h</option>

	<option >+81 h</option>

	<option >+84 h</option>

	<option >+87 h</option>

	<option >+90 h</option>

	<option >+93 h</option>

	<option >+96 h</option>

	<option >+99 h</option>

	<option >+102 h</option>

	<option >+105 h</option>

	<option >+108 h</option>

	<option >+111 h</option>

	<option >+114 h</option>

	<option >+117 h</option>

	<option >+120 h</option>

	<option >+123 h</option>

	<option >+126 h</option>

	<option >+129 h</option>

	<option >+132 h</option>

	<option >+135 h</option>

	<option >+138 h</option>

	<option >+141 h</option>

	<option >+144 h</option>

	<option >+147 h</option>

	<option >+150 h</option>

	<option >+153 h</option>

	<option >+156 h</option>

	<option >+159 h</option>

	<option >+162 h</option>

	<option >+165 h</option>

	<option >+168 h</option>

	<option >+171 h</option>

	<option >+174 h</option>

	<option >+177 h</option>

	<option >+180 h</option>

	<option >+183 h</option>

	<option >+186 h</option>

	<option >+189 h</option>

	<option >+192 h</option>

	<option >+195 h</option>

	<option >+198 h</option>

	<option >+201 h</option>

	<option >+204 h</option>

	<option >+207 h</option>

	<option >+210 h</option>

	<option >+213 h</option>

	<option >+216 h</option>

	<option >+219 h</option>

	<option >+222 h</option>

	<option >+225 h</option>

	<option >+228 h</option>

	<option >+231 h</option>

	<option >+234 h</option>

	<option >+237 h</option>

	<option >+240 h</option>

</select><button class="nnav" title="Next wind" style="margin-right: 30px;" onmousedown="next_wind();">&gt;</button>
<select onchange="set_days(this.selectedIndex + 1);" class="nnav" title="Track duration">

	<option >1d</option>

	<option >2d</option>

	<option >3d</option>

	<option >4d</option>

	<option  selected>5d</option>

	<option >6d</option>

	<option >7d</option>

	<option >8d</option>

	<option >9d</option>

	<option >10d</option>

</select>

<!--button class="nnav"><b>?</b></button-->
</div><!-- new nav--> 
<!-- div id="boat_name_d" style="clear: right;">
		<form method="GET" action="chart.pl">
		<input type="text" name="boat" size="20" title="Boat name" id="boat_name" placeholder="Enter Boat Name"  value="">
		<input type="hidden" name="sid" value="f169f64497e491553ccb1782a59dedd2">
		<button type="submit">Get</button>
		</form>
</div--!>

<div id="latlon" style="clear: right;">
	<form method="GET" action="chart.pl">
	<input type="tel" name="lon_deg" size="3" maxlength="3" style="width: 3ch;" value="67">&deg
	<input type="tel" name="lon_min" size="2" maxlength="2" style="width: 2ch;" value="59">'
	<input type="tel" name="lon_sec" size="2" maxlength="2" style="width: 2ch;" value="28">"
	<select name="lon_ew">
		<option >E</option>
		<option selected>W</option>
	<select>
	<input type="tel" name="lat_deg" size="3" maxlength="3" style="width: 3ch;" value="38">&deg
	<input type="tel" name="lat_min" size="2" maxlength="2" style="width: 2ch;" value="55">'
	<input type="tel" name="lat_sec" size="2" maxlength="2" style="width: 2ch;" value="59">"
	<select name="lat_ns">
		<option selected>N</option>
		<option >S</option>
	<select>
	<button type="submit">Go!</button>
	</form>
</div>



</div>
<div id="vp_container">
<div id="vp_canvas" onmousedown="grab(event)">
<div id="wind_info" >Wind:&nbsp;<span id="wind_data"></span></div>
<div id="tile_layer"></div>
<div id="iso_layer" style="z-index:0" ></div>
<div id="winds_layer"></div>
<div id="dot_layer" style="z-index:0">

<img src="img/dot.png" class="abs" style="z-index: 1; left :-17408px; top:13071px;" 
	onmouseover="updi(event,'2017-07-24 14:20 CEST (T+ 0:00)<br>Distances:&nbsp;0.0nm/2695.2nm<br><b>Wind:</b> 135&deg; 11.0 kt (<b>TWA 95&deg;</b>)<br><b>Heading:</b> 46&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 17.53 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17396px; top:13063px;" 
	onmouseover="updi(event,'2017-07-24 14:30 CEST (T+ 0:10)<br>Distances:&nbsp;2.9nm/2692.4nm<br><b>Wind:</b> 137&deg; 10.1 kt (<b>TWA 95&deg;</b>)<br><b>Heading:</b> 50&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 17.03 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17373px; top:13048px;" 
	onmouseover="updi(event,'2017-07-24 14:50 CEST (T+ 0:30)<br>Distances:&nbsp;8.4nm/2686.8nm<br><b>Wind:</b> 145&deg; 9.2 kt (<b>TWA 95&deg;</b>)<br><b>Heading:</b> 59&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 16.48 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17347px; top:13036px;" 
	onmouseover="updi(event,'2017-07-24 15:10 CEST (T+ 0:50)<br>Distances:&nbsp;13.8nm/2681.4nm<br><b>Wind:</b> 155&deg; 9.3 kt (<b>TWA 100&deg;</b>)<br><b>Heading:</b> 61&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 16.47 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17334px; top:13030px;" 
	onmouseover="updi(event,'2017-07-24 15:20 CEST (T+ 1:00)<br>Distances:&nbsp;16.6nm/2678.7nm<br><b>Wind:</b> 159&deg; 9.4 kt (<b>TWA 105&deg;</b>)<br><b>Heading:</b> 62&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 16.54 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17307px; top:13019px;" 
	onmouseover="updi(event,'2017-07-24 15:40 CEST (T+ 1:20)<br>Distances:&nbsp;22.1nm/2673.1nm<br><b>Wind:</b> 167&deg; 9.9 kt (<b>TWA 105&deg;</b>)<br><b>Heading:</b> 69&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 16.88 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17277px; top:13010px;" 
	onmouseover="updi(event,'2017-07-24 16:00 CEST (T+ 1:40)<br>Distances:&nbsp;27.7nm/2667.6nm<br><b>Wind:</b> 174&deg; 10.5 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 66&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 17.08 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17232px; top:12995px;" 
	onmouseover="updi(event,'2017-07-24 16:30 CEST (T+ 2:10)<br>Distances:&nbsp;36.7nm/2658.8nm<br><b>Wind:</b> 181&deg; 12.5 kt (<b>TWA 125&deg;</b>)<br><b>Heading:</b> 60&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 18.67 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(0);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17167px; top:12966px;" 
	onmouseover="updi(event,'2017-07-24 17:10 CEST (T+ 2:50)<br>Distances:&nbsp;50.3nm/2645.2nm<br><b>Wind:</b> 180&deg; 15.4 kt (<b>TWA 120&deg;</b>)<br><b>Heading:</b> 62&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.47 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(3);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-17115px; top:12945px;" 
	onmouseover="updi(event,'2017-07-24 17:40 CEST (T+ 3:20)<br>Distances:&nbsp;61.0nm/2634.6nm<br><b>Wind:</b> 178&deg; 15.0 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 63&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.11 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(3);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16979px; top:12891px;" 
	onmouseover="updi(event,'2017-07-24 19:00 CEST (T+ 4:40)<br>Distances:&nbsp;88.7nm/2607.1nm<br><b>Wind:</b> 172&deg; 14.5 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 57&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 20.59 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(3);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16914px; top:12858px;" 
	onmouseover="updi(event,'2017-07-24 19:40 CEST (T+ 5:20)<br>Distances:&nbsp;102.6nm/2593.2nm<br><b>Wind:</b> 166&deg; 15.0 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 53&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.10 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(3);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16899px; top:12849px;" 
	onmouseover="updi(event,'2017-07-24 19:50 CEST (T+ 5:30)<br>Distances:&nbsp;106.1nm/2589.7nm<br><b>Wind:</b> 164&deg; 15.2 kt (<b>TWA 110&deg;</b>)<br><b>Heading:</b> 56&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.16 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(3);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16882px; top:12841px;" 
	onmouseover="updi(event,'2017-07-24 20:00 CEST (T+ 5:40)<br>Distances:&nbsp;109.6nm/2586.1nm<br><b>Wind:</b> 162&deg; 15.2 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 56&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.24 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(6);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16819px; top:12808px;" 
	onmouseover="updi(event,'2017-07-24 20:40 CEST (T+ 6:20)<br>Distances:&nbsp;123.2nm/2572.5nm<br><b>Wind:</b> 166&deg; 13.9 kt (<b>TWA 125&deg;</b>)<br><b>Heading:</b> 52&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 20.11 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(6);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16761px; top:12774px;" 
	onmouseover="updi(event,'2017-07-24 21:20 CEST (T+ 7:00)<br>Distances:&nbsp;136.3nm/2559.3nm<br><b>Wind:</b> 175&deg; 13.7 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 56&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 19.86 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(6);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16698px; top:12742px;" 
	onmouseover="updi(event,'2017-07-24 22:00 CEST (T+ 7:40)<br>Distances:&nbsp;149.9nm/2545.6nm<br><b>Wind:</b> 183&deg; 14.9 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 63&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.06 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(6);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16437px; top:12641px;" 
	onmouseover="updi(event,'2017-07-25 00:20 CEST (T+10:00)<br>Distances:&nbsp;202.3nm/2493.6nm<br><b>Wind:</b> 191&deg; 15.2 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 70&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.35 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(9);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16361px; top:12620px;" 
	onmouseover="updi(event,'2017-07-25 01:00 CEST (T+10:40)<br>Distances:&nbsp;216.5nm/2479.6nm<br><b>Wind:</b> 198&deg; 15.5 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 75&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 21.60 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(9);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-16239px; top:12596px;" 
	onmouseover="updi(event,'2017-07-25 02:00 CEST (T+11:40)<br>Distances:&nbsp;238.4nm/2458.4nm<br><b>Wind:</b> 201&deg; 16.7 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 72&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 22.53 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(12);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-15786px; top:12487px;" 
	onmouseover="updi(event,'2017-07-25 05:40 CEST (T+15:20)<br>Distances:&nbsp;322.0nm/2377.1nm<br><b>Wind:</b> 205&deg; 18.4 kt (<b>TWA 135&deg;</b>)<br><b>Heading:</b> 73&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 23.36 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(15);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-15743px; top:12477px;" 
	onmouseover="updi(event,'2017-07-25 06:00 CEST (T+15:40)<br>Distances:&nbsp;329.9nm/2369.4nm<br><b>Wind:</b> 207&deg; 18.9 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 72&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 23.77 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(15);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-15606px; top:12444px;" 
	onmouseover="updi(event,'2017-07-25 07:00 CEST (T+16:40)<br>Distances:&nbsp;355.1nm/2345.0nm<br><b>Wind:</b> 214&deg; 21.2 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 78&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 26.16 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(15);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-15457px; top:12421px;" 
	onmouseover="updi(event,'2017-07-25 08:00 CEST (T+17:40)<br>Distances:&nbsp;381.5nm/2319.9nm<br><b>Wind:</b> 218&deg; 21.6 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 79&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 26.45 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(18);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-15072px; top:12370px;" 
	onmouseover="updi(event,'2017-07-25 10:40 CEST (T+20:20)<br>Distances:&nbsp;449.2nm/2256.0nm<br><b>Wind:</b> 221&deg; 19.6 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 84&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 24.80 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(18);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-14927px; top:12359px;" 
	onmouseover="updi(event,'2017-07-25 11:40 CEST (T+21:20)<br>Distances:&nbsp;474.2nm/2233.0nm<br><b>Wind:</b> 219&deg; 19.6 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 78&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 24.75 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(21);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-14605px; top:12311px;" 
	onmouseover="updi(event,'2017-07-25 14:00 CEST (T+23:40)<br>Distances:&nbsp;531.4nm/2179.0nm<br><b>Wind:</b> 220&deg; 18.4 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 80&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 22.95 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(24);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-13744px; top:12182px;" 
	onmouseover="updi(event,'2017-07-25 20:00 CEST (T+29:40)<br>Distances:&nbsp;684.1nm/2034.4nm<br><b>Wind:</b> 209&deg; 21.7 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 73&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 26.51 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(30);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-12889px; top:11995px;" 
	onmouseover="updi(event,'2017-07-26 02:00 CEST (T+35:40)<br>Distances:&nbsp;837.3nm/1884.5nm<br><b>Wind:</b> 192&deg; 22.0 kt (<b>TWA 120&deg;</b>)<br><b>Heading:</b> 77&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 26.10 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(36);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-11982px; top:11850px;" 
	onmouseover="updi(event,'2017-07-26 08:00 CEST (T+41:40)<br>Distances:&nbsp;995.6nm/1731.9nm<br><b>Wind:</b> 210&deg; 24.5 kt (<b>TWA 135&deg;</b>)<br><b>Heading:</b> 78&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 28.34 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(42);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-10984px; top:11774px;" 
	onmouseover="updi(event,'2017-07-26 14:00 CEST (T+47:40)<br>Distances:&nbsp;1165.4nm/1573.2nm<br><b>Wind:</b> 217&deg; 27.8 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 84&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 30.63 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(48);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-9964px; top:11681px;" 
	onmouseover="updi(event,'2017-07-26 20:00 CEST (T+53:40)<br>Distances:&nbsp;1338.4nm/1409.4nm<br><b>Wind:</b> 207&deg; 22.6 kt (<b>TWA 140&deg;</b>)<br><b>Heading:</b> 73&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 27.20 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(54);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-9086px; top:11494px;" 
	onmouseover="updi(event,'2017-07-27 02:00 CEST (T+59:40)<br>Distances:&nbsp;1487.2nm/1258.2nm<br><b>Wind:</b> 172&deg; 19.1 kt (<b>TWA 110&deg;</b>)<br><b>Heading:</b> 74&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 24.47 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(60);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-8203px; top:11344px;" 
	onmouseover="updi(event,'2017-07-27 08:00 CEST (T+65:40)<br>Distances:&nbsp;1634.2nm/1110.6nm<br><b>Wind:</b> 191&deg; 19.4 kt (<b>TWA 110&deg;</b>)<br><b>Heading:</b> 77&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 24.68 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(66);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-7298px; top:11219px;" 
	onmouseover="updi(event,'2017-07-27 14:00 CEST (T+71:40)<br>Distances:&nbsp;1782.2nm/962.8nm<br><b>Wind:</b> 197&deg; 17.9 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 75&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 23.46 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(72);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-6389px; top:11071px;" 
	onmouseover="updi(event,'2017-07-27 20:00 CEST (T+77:40)<br>Distances:&nbsp;1928.6nm/813.4nm<br><b>Wind:</b> 200&deg; 17.0 kt (<b>TWA 110&deg;</b>)<br><b>Heading:</b> 79&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 22.85 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(78);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-5484px; top:10961px;" 
	onmouseover="updi(event,'2017-07-28 02:00 CEST (T+83:40)<br>Distances:&nbsp;2072.2nm/668.6nm<br><b>Wind:</b> 187&deg; 17.7 kt (<b>TWA 110&deg;</b>)<br><b>Heading:</b> 81&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 23.40 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(84);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-4514px; top:10813px;" 
	onmouseover="updi(event,'2017-07-28 08:00 CEST (T+89:40)<br>Distances:&nbsp;2223.2nm/511.9nm<br><b>Wind:</b> 196&deg; 21.8 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 69&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 26.24 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(90);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-3481px; top:10566px;" 
	onmouseover="updi(event,'2017-07-28 14:00 CEST (T+95:40)<br>Distances:&nbsp;2377.8nm/340.5nm<br><b>Wind:</b> 196&deg; 24.1 kt (<b>TWA 130&deg;</b>)<br><b>Heading:</b> 69&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 27.75 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(96);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-2446px; top:10346px;" 
	onmouseover="updi(event,'2017-07-28 20:00 CEST (T+101:40)<br>Distances:&nbsp;2528.6nm/174.0nm<br><b>Wind:</b> 199&deg; 21.1 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 83&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 25.47 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(102);">
<img src="img/dot.png" class="abs" style="z-index: 1; left :-1427px; top:10280px;" 
	onmouseover="updi(event,'2017-07-29 02:00 CEST (T+107:40)<br>Distances:&nbsp;2678.6nm/19.1nm<br><b>Wind:</b> 197&deg; 18.9 kt (<b>TWA 115&deg;</b>)<br><b>Heading:</b> 83&deg;<b>Sail:</b> Spi<br><b>Boat Speed:</b> 24.16 kts','220px')" onmouseout="cleari()" 
	onmousedown="show_wind(108);">
<img src="img/flag.png" class="abs" style="left :-1305px; top:10228px;">
</div>
<div id="friends_layer" >

</div>
<div id="track_layer"><canvas id="track_canvas"></canvas></div> 
</div>
<div id="help_div"></div>
<div id="cmenu" class="contextmenu" style="display: none;">
	<div class="menuitem" style="width:150px" onmouseover="over(event,this)"
			onmouseout="out(event,this)" onmousedown="show_polars()">Polar graph</div>
    <div class="divider"></div> 
	<div class="menuitem" style="width:150px" onmouseover="over(event,this)"
			onmouseout="out(event,this)" onmousedown="set_pos(0,1)">Set as starting point</div>
	<div class="menuitem" style="width:150px" onmouseover="over(event,this)"
			onmouseout="out(event,this)" onmousedown="set_pos(1,1)">Set as destination</div>
    <div class="divider"></div> 
	
	<div class="menuitem" style="width:150px; background:#E3F3FF;" onmouseover="over(event,this)"
                   onmouseout="out(event,this)" onmousedown="set_pos(1,0,-5.09781,49.9401)">
					Go to Cap Lizard</div>
	
	<div class="divider"></div> 
	<div class="menuitem" style="width:150px" onmouseover="over(event,this)" onmouseout="out(event,this)" 
			onmousedown="toggle_pro()">
			<input type="checkbox" id="tpb" style="border:none; margin-left: 0;" onmousedown="cancel_event"
			> Pro sails
	</div>
	<div class="menuitem" style="width:150px" onmouseover="over(event,this)" onmouseout="out(event,this)" 
			onmousedown="toggle_gates()">
			<input type="checkbox" id="tgb" style="border:none; margin-left: 0;" onmousedown="cancel_event"
			> Ignore gates
	</div>
	<div class="menuitem" style="display:block; width:150px;" onmouseover="over(event,this)" onmouseout="out(event,this)" 
			onmousedown="toggle_tacks()">
			<input type="checkbox" id="ttb" style="border:none; margin-left: 0;" onmousedown="cancel_event"
			> 6% extra speed 
	</div>
	<div class="menuitem" style="display:block; width:150px;" onmouseover="over(event,this)" onmouseout="out(event,this)" 
			onmousedown="toggle_time()">

			<input type="checkbox" id="tsb" style="border:none; margin-left: 0;" onmousedown="cancel_event"
			> Timeshift
	</div>
	<div class="divider"></div> 
		<div class="menuitem" style="width:150px" onmouseover="over(event,this)"
                        onmouseout="out(event,this)" onmousedown="find_boat()">Center chart</div>
</div>

<div style="display:block; position: fixed; z-index:15; right:0px; bottom: 20px; padding: 1px;">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Chart bottom -->
<ins class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-4306548645573687"
     data-ad-slot="4516500658"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>

</div>
<div id="statusbar">
<div class="statusitem" style="width: 10em">DST:<span id="span_dd1"></span></div>
<div class="statusitem" style="width: 10em"><span id="span_lat"></span>&nbsp;<span id="span_lon"></span></div>
<div class="statusitem">Mon Jul 24 14:20 CET</div>

<div class="statusitem" id="debug_div"></div>
<div class="statusitem" style="float:right; margin-right: 1px; width:10em">DTF:<span id="span_dd2"></span></div>
<div class="statusitem" style="float:right;" title="Last file:gfs.t06z+237h">GFS:06Z</div>


</div>



<div id="amenu" class="contextmenu" style="display:none;">
	<div class="menuitem" style="width:150px">Router algorithm:</div>
    <div class="divider"></div> 
	
</div>

</body>
</html>
Concernant les unités, oui il me les faut sinon comment les ajouter à la création du tableau ?
Je compte ouvrir un post avec l'extension au complet car j'aimerais ajouter d'autres valeurs du code source et d'autres qui résultent de calculs

Eléphanteau du PHP | 25 Messages

24 juil. 2017, 16:13

Ça fonctionne toujours pas ... c'est à devenir fou ce truc ...
J'ai même testé ça :
Image


Ça devrait fonctionner, nan ? :cry:

Eléphanteau du PHP | 25 Messages

24 juil. 2017, 20:19

Bon j'ai une piste ...
Mon soucis réside dans la décomposition de la date / heure / fuseau horaire / temps du WP ainsi que direction du vent / vitesse du vent ...
J'ai oublié de préciser qu'il s'agissait d'une extension google chrome ... visiblement il ne traduit pas de la meme manière la regex qu'un fichier html ...
Avec un fichier html en local ( sur le mac ) la regex suivante fonctionne :
/updi\(event\,\'(.*)\-(.*)\-(.*)[ ](.*)\:(.*)[ ](.*)[ ]\((.*)\)<br>Distances:&nbsp;(.*)\/(.*)<br><b>Wind:<\/b>(.*)\;(.*)\(<b>TWA(.*);<\/b>\)<br><b>Heading:<\/b>(.*)<b>Sail:<\/b>(.*)<br><b>Boat Speed:<\/b>(.*)','220px'\)
Sous l'extension je n'arrive pas à lui faire entendre les espaces ainsi que le ; que ça soit avec les [] ou le \ ...
Si vous avez une idée je suis preneur je me chauffe les neurones depuis ce matin et la ils bouillent :evil:

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7294 Messages

25 juil. 2017, 13:17

Il existe un grand nombre de caractères espaces en réalité, donc il est préférable dans ses regex d'utiliser \s qui représente n'import quel espace.
Peut être est-ce ça ton soucis...

Sur regex101, tu as une regex qui fonctionne parfaitement ? Si oui donne nous le lien (en cliquant sur Save) ça sera + simple pour comprendre et tester.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 25 Messages

26 juil. 2017, 21:31

Bonsoir,
Voici le lien de la regex fonctionnelle de mon fichier html :

https://regex101.com/r/bXD7a2/1

Je viens de m'apercevoir que je n'arrive pas à afficher le 'espace kts' de la dernière case STW mais tous le reste fonctionne à merveille mais cette regex n'est pas fonctionnelle dans le fichier 'myscript.js' de l'extension Google Chrome #-o :(

Image

Eléphanteau du PHP | 25 Messages

26 juil. 2017, 21:43

Cette version fonctionne également ( toujours le petit bug de 'espace kts' dans la colonne STW)

/updi\(event,'(.*)\s(.*)\s(.*)\s\((.*)\)<br>Distances:&nbsp;(.*)\/(.*)<br><b>Wind:<\/b>\s(.*);\s(.*)\s\(<b>TWA\s(.*);<\/b>\)<br><b>Heading:<\/b>\s(.*);<b>Sail:<\/b>\s(.*)<br><b>Boat\sSpeed:<\/b>\s(.*)','220px'\)/gi
Image

Eléphanteau du PHP | 25 Messages

28 juil. 2017, 07:48

Une idée ?

Mammouth du PHP | 1250 Messages

28 juil. 2017, 08:11

en l'incluant dans ta regex comme ceci
https://regex101.com/r/bXD7a2/2
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Eléphanteau du PHP | 25 Messages

31 juil. 2017, 11:43

en l'incluant dans ta regex comme ceci
https://regex101.com/r/bXD7a2/2
Bonjour Spols,
je souhaite garder l'unité ' Kts' après la valeur dans la colonne STW et non la supprimer

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7294 Messages

31 juil. 2017, 16:28

Ta 1ère regex fonctionne. En voici une encore + précise pour limiter les faux positifs et qui évite de casser les codes HTML des degrés :
https://regex101.com/r/bXD7a2/3

Après si ça ne marche pas dans ton extension, il faut que tu fasses le debug par toi même en commençant par un petit morceau à récupérer puis en élargissant ta regex jusqu'à trouver à quel niveau cela bloque.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 25 Messages

31 juil. 2017, 18:17

Ta 1ère regex fonctionne. En voici une encore + précise pour limiter les faux positifs et qui évite de casser les codes HTML des degrés :
https://regex101.com/r/bXD7a2/3

Après si ça ne marche pas dans ton extension, il faut que tu fasses le debug par toi même en commençant par un petit morceau à récupérer puis en élargissant ta regex jusqu'à trouver à quel niveau cela bloque.
Ok merci @rthur, je test ça et si besoin je dégrossi valeur par valeur
Je posterais mes recherches ici