J'essaie de créer un script python flexible qui lit et extrait certaines variables météorologiques d'un code synop.
Voici le code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
Les données d'entrée sont :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Cependant, il renvoie ce qui suit :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Lorsque je restreint certaines variables (c'est-à-dire jusqu'au groupe 15), cela renvoie :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Comment avoir un script contenant tous les types de messages de modèle ?
Même si une seule variable est mal formée, il peut y avoir des raisons de rejeter la ligne entière (ou de la remplacer par une chaîne None).
Cependant, si vous souhaitez extraire chaque variable bien formée, même si certaines variables de la ligne sont mal formées, vous devez utiliser re.split(', ', line)
将行拆分为变量列表,并分别转换/检查每个变量。不幸的是,re
pour faire correspondre l'expression entière au lieu de chaque groupe
Si vous devez utiliser une expression régulière flexible, vous devriez envisager d'utiliser un groupe potentiellement mal formé comme (?:(4d{4})|d*[/]+)
.
Malheureusement, cela augmente le nombre de groupes, j'utilise donc l'opérateur de groupe sans capture :?
来保持组编号相同。如果您发现它太笨拙,另一种选择是使用更多通用组表达式 (4[/d]{4})
qui autorise les valeurs manquantes mais vous testerez plus tard s'il manque un signe dièse "/" ou intercepterez simplement l'exception lors de la conversion.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!