2013-05-22 6 views
2

Je souhaite filtrer certaines données à l'aide de regex. Pour l'instant j'ai du texte qui dépasse 2 lignes et j'ai essayé de faire correspondre le linebreak avec [^.*]. Mais il semble ne pas passer le saut de ligne et donc il ne correspond à aucun résultat sur la deuxième ligne. Comment puis-je inclure le saut de ligne? J'ai essayé quelque chose comme [^\n\r.*] mais ça n'a pas marché.Regex correspond à chaque caractère et nouvelle ligne

+0

Quelle langue utilisez-vous? Les expressions régulières sont différentes et correspondent à des choses différentes pour différentes langues. – zzzzBov

+1

http://perldoc.perl.org/perlre.html#Modifiers -> vérifier les modificateurs 'm' et' s'. –

+0

oh désolé, j'utilise php et preg_match – Johnny000

Répondre

2

Description de

Vous pouvez utiliser l'option « s » qui force le point de faire correspondre tous les caractères de nouvelle ligne, ou si vous ne disposez pas de contrôle sur le code sous-jacent, vous pouvez essayer:

([^.]|[.])

Ceci correspondra à tous les caractères. Le point ne correspondra parfois pas au retour chariot, nouvelle ligne.

exemple PHP

<?php 
$sourcestring="This is my. 
super cool 
test string"; 
preg_match_all('/([^.]|[.])/i',$sourcestring,$matches); 
echo "<pre>".print_r($matches,true); 
?> 

$matches Array: 
(
    [0] => Array 
     (
      [0] => T 
      [1] => h 
      [2] => i 
      [3] => s 
      [4] => 
      [5] => i 
      [6] => s 
      [7] => 
      [8] => m 
      [9] => y 
      [10] => . 
      [11] => 
      [12] => 

      [13] => s 
      [14] => u 
      [15] => p 
      [16] => e 
      [17] => r 
      [18] => 
      [19] => c 
      [20] => o 
      [21] => o 
      [22] => l 
      [23] => 
      [24] => 

      [25] => t 
      [26] => e 
      [27] => s 
      [28] => t 
      [29] => 
      [30] => s 
      [31] => t 
      [32] => r 
      [33] => i 
      [34] => n 
      [35] => g 
     ) 

    [1] => Array 
     (
      [0] => T 
      [1] => h 
      [2] => i 
      [3] => s 
      [4] => 
      [5] => i 
      [6] => s 
      [7] => 
      [8] => m 
      [9] => y 
      [10] => . 
      [11] => 
      [12] => 

      [13] => s 
      [14] => u 
      [15] => p 
      [16] => e 
      [17] => r 
      [18] => 
      [19] => c 
      [20] => o 
      [21] => o 
      [22] => l 
      [23] => 
      [24] => 

      [25] => t 
      [26] => e 
      [27] => s 
      [28] => t 
      [29] => 
      [30] => s 
      [31] => t 
      [32] => r 
      [33] => i 
      [34] => n 
      [35] => g 
     ) 

) 
Questions connexes