Bonjour à tous,
Tout d'abord bon courage à tous pour le confinement.
Voici mon besoin du jour : Je récupère des commentaires dans lesquels, j'ai besoin d'extraire des numéros de téléphone.
Exemple de commentaires :
PDS 07h 06 12 45 78 48
Agent sur place 06.12.45.78.48
APP 07h20 06/12/45/78/48
Appeler l'agent au 0612457848
0612457848 pour agent sur place
J'ai utilisé le pattern suivant pour isoler les chiffres :
$pattern = "[0-9]"
$reg_exp_res = StringRegExp($comm_en_cours, $pattern, 3)
$reg_exp_res=_ArrayToString($reg_exp_res, "")
ConsoleWrite($reg_exp_res & @CRLF)
qui fonctionne pour les commentaires 2, 4 et 5 car il n'y a pas d'autres chiffres mais pas pour le 1 et 3 ou il y a une heure.
Le numéro peut-être n'importe où.
Merci d'avance pour votre aide.
Amicalement.
BM
[R] Regex téléphone
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- scorp84
- Niveau 7
- Messages : 405
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
[R] Regex téléphone
Modifié en dernier par scorp84 le jeu. 19 mars 2020 16:55, modifié 1 fois.
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..] Regex téléphone
Bonjour,
J'ai bricolé ce regex il y a surement plus simple !
On obtient un array dans un array qui lui contient le N° de téléphone. C'est pas génial mais ça marche
.
J'ai compliqué la recherche en ajoutant des indicatifs, plusieurs N° et plusieurs lignes à tout hasard...
Jchd ou Michel auront surement de meilleurs idées
J'ai bricolé ce regex il y a surement plus simple !
On obtient un array dans un array qui lui contient le N° de téléphone. C'est pas génial mais ça marche

J'ai compliqué la recherche en ajoutant des indicatifs, plusieurs N° et plusieurs lignes à tout hasard...
Local $array[7] = ["1-PDS 07h 06 12 45 78 48","2-Agent sur place 06.12.45.78.48 ou 07.12.45.78.48" & @CRLF & "ou 08.12.45.78.48","3-APP 07h20 06/12/45/78/48","4-Appeler l'agent au 0612457848","5-07-12-45-78-48 pour agent sur place", _
"6-Agent (+33) 01 85 73 14 00 à 07:15","7-Agent (+596) 06 78 56 56 00 à 07h15 le 12/04/2020"]
For $i = 0 To UBound($array) - 1
$reg_exp_res = StringRegExp($array[$i], "(?m)(0|[+0-9])[1-9]([-. /]?[0-9]{2}){4}+", 4)
For $y = 0 To UBound($reg_exp_res) - 1
Local $aMatch = $reg_exp_res[$y]
MsgBox(0,$y & " /"& UBound($reg_exp_res) - 1 &" pour "& $i , $array[$i] & @CRLF & @CRLF & "N°: " & $aMatch[0])
Next
Next
"6-Agent (+33) 01 85 73 14 00 à 07:15","7-Agent (+596) 06 78 56 56 00 à 07h15 le 12/04/2020"]
For $i = 0 To UBound($array) - 1
$reg_exp_res = StringRegExp($array[$i], "(?m)(0|[+0-9])[1-9]([-. /]?[0-9]{2}){4}+", 4)
For $y = 0 To UBound($reg_exp_res) - 1
Local $aMatch = $reg_exp_res[$y]
MsgBox(0,$y & " /"& UBound($reg_exp_res) - 1 &" pour "& $i , $array[$i] & @CRLF & @CRLF & "N°: " & $aMatch[0])
Next
Next
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
- scorp84
- Niveau 7
- Messages : 405
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [..] Regex téléphone
Bonjour Walkson,
Une fois de plus un grand merci pour votre réponse rapide et efficace (comme d'hab
Amicalement.
BM
Une fois de plus un grand merci pour votre réponse rapide et efficace (comme d'hab

Amicalement.
BM
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [R] Regex téléphone
Doucement avec les compliments ! je ne suis pas sûr de les mériter
Testez avec
Y'a encore du travail sur la planche

Testez avec
"1-PDS 07h15 06 12 45 78 48"
cela vous retourne 15 06 12 45 78
ce qui n'est pas la réponse attendue !Y'a encore du travail sur la planche

Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Regex téléphone
My 2 cents - out of containment

$txt1 = "PDS 07h 06 12 45 78 41" & @crlf & _
"Agent sur place 06.12.45.78.42" & @crlf & _
"APP 07h20 06/12/45/78/43" & @crlf & _
"Appeler l'agent au 0612457844" & @crlf & _
"0612457845 pour agent sur place" & @crlf & _
"1-PDS 07h06 06 12 45 78 46" & @crlf & _
"1-PDS 07h 06 06 12 45 78 47"
$txt2 = "1-PDS 07h 06 12 45 78 41" & @crlf & _
"2-Agent sur place 06.12.45.78.48 ou 07.12.45.78.42" & @crlf & _
"ou 08.12.45.78.43" & @crlf & _
"3-APP 07h20 06/12/45/78/44" & @crlf & _
"4-Appeler l'agent au 0612457845" & @crlf & _
"5-07-12-45-78-46 pour agent sur place" & @crlf & _
"6-Agent (+33) 01 85 73 14 00 à 07:15" & @crlf & _
"7-Agent (+596) 06 78 56 56 00 à 07h15 le 12/04/2020"
$res = StringRegExpReplace($txt2, _
'(?m)^.*(?<!h)(\d{2})([-. /]?)((?1))\2((?1))\2((?1))\2((?1)).*', _
"$1 $3 $4 $5 $6")
Msgbox(0,"", $res)
"Agent sur place 06.12.45.78.42" & @crlf & _
"APP 07h20 06/12/45/78/43" & @crlf & _
"Appeler l'agent au 0612457844" & @crlf & _
"0612457845 pour agent sur place" & @crlf & _
"1-PDS 07h06 06 12 45 78 46" & @crlf & _
"1-PDS 07h 06 06 12 45 78 47"
$txt2 = "1-PDS 07h 06 12 45 78 41" & @crlf & _
"2-Agent sur place 06.12.45.78.48 ou 07.12.45.78.42" & @crlf & _
"ou 08.12.45.78.43" & @crlf & _
"3-APP 07h20 06/12/45/78/44" & @crlf & _
"4-Appeler l'agent au 0612457845" & @crlf & _
"5-07-12-45-78-46 pour agent sur place" & @crlf & _
"6-Agent (+33) 01 85 73 14 00 à 07:15" & @crlf & _
"7-Agent (+596) 06 78 56 56 00 à 07h15 le 12/04/2020"
$res = StringRegExpReplace($txt2, _
'(?m)^.*(?<!h)(\d{2})([-. /]?)((?1))\2((?1))\2((?1))\2((?1)).*', _
"$1 $3 $4 $5 $6")
Msgbox(0,"", $res)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [R] Regex téléphone
Bonjour,
J'aime bien ce code car il formate les N° et il est simple mais sur le $txt2 à
Sinon j'ai trouvé ce regex que j'ai bidouillé et qui accepte à peu près toutes les formes de N° mais il ne les formate pas
J'aime bien ce code car il formate les N° et il est simple mais sur le $txt2 à
"2-Agent sur place 06.12.45.78.48 ou 07.12.45.78.42" & @crlf & _
il ne prend que le deuxième numéro.Sinon j'ai trouvé ce regex que j'ai bidouillé et qui accepte à peu près toutes les formes de N° mais il ne les formate pas
Local $array[9] = ["1-PDS 07h15 06 12 45 78 48","2-Agent sur place 06.12.45.78.48 ou 07.12.45.78.48" & @CRLF & "ou 08.12.45.78.48","3-APP 07h20 06/12/45/78/48","4-Appeler l'agent au 0612457848","5-07-12-45-78-48 pour agent sur place", _
"6-Agent +33 1 85 73 14 00 à 07:15","7-Agent (+33) 06 78 56 56 00 à 07h15 le 12/04/2020","8-Agent 0033 1 78 56 56 00 à 07h15 le 12/04/2020","9 +33 678 565 600" ]
For $i = 0 To UBound($array) - 1
$reg_exp_res = StringRegExp($array[$i], "(?m)(?:(?:\+|00)33|0)\s*[1-9](?:[\s\W]*\d{2,3}){3,4}", 4)
For $y = 0 To UBound($reg_exp_res) - 1
Local $aMatch = $reg_exp_res[$y]
MsgBox(0,$y & " /"& UBound($reg_exp_res) - 1 &" pour "& $i , $array[$i] & @CRLF & @CRLF & "N°: " & $aMatch[0])
Next
Next
"6-Agent +33 1 85 73 14 00 à 07:15","7-Agent (+33) 06 78 56 56 00 à 07h15 le 12/04/2020","8-Agent 0033 1 78 56 56 00 à 07h15 le 12/04/2020","9 +33 678 565 600" ]
For $i = 0 To UBound($array) - 1
$reg_exp_res = StringRegExp($array[$i], "(?m)(?:(?:\+|00)33|0)\s*[1-9](?:[\s\W]*\d{2,3}){3,4}", 4)
For $y = 0 To UBound($reg_exp_res) - 1
Local $aMatch = $reg_exp_res[$y]
MsgBox(0,$y & " /"& UBound($reg_exp_res) - 1 &" pour "& $i , $array[$i] & @CRLF & @CRLF & "N°: " & $aMatch[0])
Next
Next
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)