http://regexstorm.net/tester?p=%28%3f%3c%3d1+FORM+%29%5cb%28%3f%3ctown%3e%5cw%2b%29%5cb+%2c.%2b%3f%2c+%5cb%28%3f%3ccountry%3e%5cw%2b%29%5cb&i=1+FORM+Town+%2c+Area+code+%2c+County+%2c+Region+%2c+Country%2c+SubdivisionTour%0d%0a2+FOO+Pli+%2c+Tour
Je t'ai mis un exemple de capture avec 2 groupes nommés "town" et "country".
Tu n'as plus qu'à concatener les 2 groupes pour obtenir ce que tu veux.
Peut on extraire avec un RegEx Java
(?<=DATE\s)\d{1,2}\s[A-Z]{3}\s\d{4}
http://regexstorm.net/tester?p=%28%3f%3c%3dDATE%5cs%29%5cd%7b1%2c2%7d%5cs%5bA-Z%5d%7b3%7d%5cs%5cd%7b4%7d&i=0+HEAD%0d%0a2+PLAC+sss%2css%2css%2css%2css%2c5+eme+arrondissement%0d%0a2+DATE+7+OCT+1956%0d%0a1+GTO%0d%0a2+PLAC+Town+%2c+Area+code+%2c+County+%2c+Region+%2c+Country%2c+Subdivision%0d%0a2+DATE+27+SEP+1856%0d%0a0+%401I%40+INDI
(?<=PLAC\s)[A-Za-z]+
http://regexstorm.net/tester?p=%28%3f%3c%3dPLAC%5cs%29%5bA-Za-z%5d%2b&i=0+HEAD%0d%0a2+PLAC+sss%2css%2css%2css%2css%2c5+eme+arrondissement%0d%0a2+DATE+7+OCT+1956%0d%0a1+GTO%0d%0a2+PLAC+Town+%2c+Area+code+%2c+County+%2c+Region+%2c+Country%2c+Subdivision%0d%0a2+DATE+27+SEP+1856%0d%0a0+%401I%40+INDI
(?<=PLAC\s(?:.+?,){4}\s?)[A-Za-z]+(?=\s?,)
http://regexstorm.net/tester?p=%28%3f%3c%3dPLAC%5cs%28%3f%3a.%2b%3f%2c%29%7b4%7d%5cs%3f%29%5bA-Za-z%5d%2b%28%3f%3d%5cs%3f%2c%29&i=0+HEAD%0d%0a2+PLAC+sss%2css%2css%2css%2css%2c5+eme+arrondissement%0d%0a2+DATE+7+OCT+1956%0d%0a1+GTO%0d%0a2+PLAC+Town+%2c+Area+code+%2c+County+%2c+Region+%2c+Country%2c+Subdivision%0d%0a2+DATE+27+SEP+1856%0d%0a0+%401I%40+INDI
\d\s?PLAC\s?([A-Za-z]+)\s?,(?:.+?,){3}\s?([A-Za-z]+).+
$1 - $2
http://regexstorm.net/tester?p=%5cd%5cs%3fPLAC%5cs%3f%28%5bA-Za-z%5d%2b%29%5cs%3f%2c%28%3f%3a.%2b%3f%2c%29%7b3%7d%5cs%3f%28%5bA-Za-z%5d%2b%29.%2b&i=2+PLAC+sss%2css%2css%2css%2css%2c5+eme+arrondissement&r=%241+-+%242
http://regexstorm.net/tester?p=%5cd%5cs%3fPLAC%5cs%3f%28%5bA-Za-z%5d%2b%29%5cs%3f%2c%28%3f%3a.%2b%3f%2c%29%7b3%7d%5cs%3f%28%5bA-Za-z%5d%2b%29.%2b&i=2+PLAC+Town+%2c+Area+code+%2c+County+%2c+Region+%2c+Country%2c+Subdivision&r=%241+-+%242
http://regexstorm.net/tester?p=%5cd%5cs%3fPLAC%5cs%3f%28%5bA-Za-z%5d%2b%29%5cs%3f%2c%28%3f%3a.%2b%3f%2c%29%7b3%7d%5cs%3f%28%5bA-Za-z%5d%2b%29.%2b&i=0+HEAD%0d%0a2+PLAC+sss%2css%2css%2css%2css%2c5+eme+arrondissement%0d%0a2+DATE+7+OCT+1956%0d%0a1+GTO%0d%0a2+PLAC+Town+%2c+Area+code+%2c+County+%2c+Region+%2c+Country%2c+Subdivision%0d%0a2+DATE+27+SEP+1856%0d%0a0+%401I%40+INDI&r=%241+-+%242
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionQ1 - Pourquoi ces différences de renvoi entre par exemple entre <regex101.com> et <RegexTester> ?
Est elle mal écrite, Est il normal que le fichier entier apparaisse dans matche, .. Je ne comprends pas quoi ? ..
(?ms).*^\d\sDATE\s([^\r\n]*).*$ce n'est pas bon car tu demandes que ça ailles jusqu'à la fin du texte avec $ mais que ça ne passe pas les sauts de lignes avec [^\r\n] c'est contradiction.
(?<=DATE\s)\d{1,2}\s[A-Z]{3}\s\d{4}ne retournait pas 27 sept 1856 car dans un exemple précédent les mois étaient en majuscules et codés sur 3 lettres, "sept" c'est 4 minuscules
(?<=DATE\s)\d{1,2}\s[A-Za-z]{3,4}\s\d{4}
Effectivement dans la saisie de la Regex le logiciel que j'utilise (YED) :
a) - je saisie d'abord le groupe dans lequel je me place par exemple le groupe <NAME> ou <BIRT>
(?ms).*^\d\sDATE\s(.*?)$.*
Elle ne capture pas la date, elle capture tout le texte et extrait la date dans un groupe.
...
J'ai commencé par te proposer des groupes et tu n'en voulais pas.
2 DATE trucmucheça capture trucmuche dans le groupe
3 capture incohérente autorisée ou pas?est problématique, pour la date, si par la suite, YED essaye de transformer "trucmuche" en date ça va planter.
DATE\s(\d{1,2}\s[A-Za-z]{3,4}\s\d{4})capture dans un groupe (sans nom) un texte qui est cohérent avec une date:
PLAC\s([A-Za-z]+)https://regex101.com/r/L6eRJ9/3
[A-Za-z]par
\w, ce qui donne
PLAC\s(\w+)https://regex101.com/r/L6eRJ9/4
PLAC\s(?:.+?,){4}\s?([A-Za-z]+)(?=\s?,)https://regex101.com/r/L6eRJ9/5
PLAC\s(?:.+?,){4}\s?(\w+)(?=\s?,)https://regex101.com/r/L6eRJ9/6
\d PLAC\s?([A-Za-z]+)\s?,(?:.+?,){3}\s?([A-Za-z]+).+capture ville et pays (en lettres uniquement) dans 2 groupes séparés.
$1 - $2comme syntaxe de substitution, dans l'exemple je n'ai laissé que les lignes concernées le résultat est le cumul de toutes les substitutions (ça je te l'ai dit le 25 mars)
DATE\s(\d{1,2}\s[A-Za-z]{3,4}\s\d{4}).*?\d PLAC\s?([A-Za-z]+)\s?,(?:.+?,){3}\s?([A-Za-z]+)avec l'option SingleLine
25 mars 2020 à 09:42
Merci d'abord de ta réponse... mais je ne comprends pas ..
1/ Ta réponse
Je copie et colle ton lien où ?
.
2/ Extraire "country"
Je cherche un pattern permettant d'extraire "country" de la chaine J'ai testé "(?ms).*^\d\sFORM\s([^,]*),.*$", "(?ms).*^\d\sFORM\s(([^,]*,){4}).*$" et bien d'autres écritures mais je ne parviens pas au résultat "country" exclusivement
Q1 - Quelle est la Regex qui permet d'extraire "country"
2/ Extraire en une fois "town - country" avec (ou sans) le caractère intermédiaire"-". Dans ce cas "town - country" sont assemblés (et seront traité dans mon logiciel exterrne).
Q2 - Quel est donc le code correct pour extraire en une chaine "town country" (assemblés) ?
Merci beaucoup d'avance
Salutations