Regex pour position fixe et de la longueur de champ

Je suis en train de travailler sur une regex extraire exact de caractères à partir d'un mainframe ligne de journal, avec une largeur fixe l'espacement (...regex n'est pas mon point fort, BTW).

Je veux extraire les valeurs de champ d'un champ d'État, qui est la zone de longueur fixe qui contient le SUCCESSFUL AUDIT, LOGON COMPLETE, et FINAL FAILED AUDIT valeurs indiquées dans l'échantillon des événements ci-dessous.

Il y a beaucoup de valeurs de cette zone de longueur fixe, donc je ne peux pas vraiment extraire de la chaîne des valeurs comme j'ai essayé de faire.

Au lieu de cela, je voudrais extraire de tous les personnages qui commencent à la position 54 de l'événement et la longueur est exactement 18 caractères.

De l'aide ou des idées au sujet de la regex ou la méthode, etc, serait grandement apprécié.

528 LOGON   39690  SECURITY LAPTOP    8481 USER AB11 SUCCESSFUL AUDIT  BBB908AFB 06/20/12 09:11:43PM    
528 LOGON   39692  SECURITY LAPTOP    8495 USER AB11 LOGON COMPLETE    BBB908AFB 06/20/12 09:12:12PM    
528 LOGOFF  39699  SECURITY DESKTOP   4476 USER ABEQ FINAL FAILED AUDITAADAFCC01 06/20/12 09:55:49PM   
  • a) avez-vous besoin d'utiliser un langage spécifique? Si oui, merci d'ajouter la balise et de le mentionner. b) Est-il prévu qu'il n'y a pas d'espace après FINAL FAILED AUDIT? c) quel est le champ d'état de la dernière ligne commence à la même position que les deux premiers? LOGOFF et DESKTOP sont à la fois un caractère de plus que LOGON et LAPTOP, respectivement. Impression à l'exemple des chaînes de code au lieu d'un bloc de citation doit montrer plus clairement.
InformationsquelleAutor | 2012-09-24