J'essaie d'utiliser des expressions rationnelles Java pour correspondre à un modèle qui s'étend sur plusieurs lignes. Le modèle a une ligne qui commence par « A » suivi d'exactement 50 caractères, puis une ou plusieurs lignes commençant par « B » suivi d'exactement 50 caractères:Java Expression régulière pour trouver plusieurs lignes d'une longueur spécifique
A... // exactly 50 chars after the A
B...
B...
Java expressions régulières ne semblent pas soutenir ceci cependant.
Voici une expression rationnelle qui fonctionne pour une A et une ligne B:
A.{50}[\\n[\\n\\r]]B.{50}[\\n[\\n\\r]]
est ici le même regexp modifié pour trouver une ou plusieurs lignes B:
A.{50}[\\n[\\n\\r]][B.{50}[\\n[\\n\\r]]]+
Cette expression rationnelle ne trouve que le personnage B de tête sur la première ligne B, cependant. J'utilise [\\n[\\r\\n]]
pour gérer les nouvelles lignes DOS et UNIX. L'activation du mode MULTILINE n'affecte pas les résultats.
Le problème semble être lorsque j'utilise les parenthèses avec '+' pour transformer l'expression rationnelle pour une ligne B en une classe de caractères qui peut capturer plusieurs lignes.
Y at-il quelque chose à propos des expressions rationnelles Java qui ne permettent pas le '.' caractère ou les accolades pour spécifier une longueur de ligne exacte?
Il y a une ligne A avec 50 caractères suivant le 'A', puis plusieurs lignes B avec 50 caractères suivant le premier 'B'. stackoverflow n'a pas conservé les nouvelles lignes entre les lignes A et B que j'ai montrées ci-dessus. –