J'ai les données suivantes (ou quelque chose comme ça):Choisissez-texte spécifique d'un fichier texte en utilisant des expressions régulières dans SAS
DATA test2;
INPUT STRING $31. ;
PUT STRING;
DATALINES;
James Bond is a spy
Hello World
123 Mill st P BOX 223
11 prospect ave p o box
P Box 225
Hello World
pobox 2212
P. O. box. 256
;
run;
Je voudrais lire seulement les lignes qui commencent par « Bonjour tout le monde "jusqu'à la prochaine ligne, de sorte que ma sortie serait
Hello World
123 Mill st P BOX 223
11 prospect ave p o box
Hello World
pobox 2212
mon idée est de faire ensuite des manipulations sur chacun de ces deux textes (ou en général plus), et les ajouter ensuite ensemble. Mais d'abord je dois seulement filtrer le texte dont j'ai besoin. note que mon fichier texte original est énorme, et où les espaces viennent, je ne sais pas.
Ma tentative suivante est la suivante:
data test3;
set test2;
if _n_=1 then do;
retain startline endline;
startline = prxparse('/Hello World/');
endline = prxparse('/^\s/');
end;
if (prxmatch(startline,STRING)=1 or prxmatch(endline,STRING)=1) ;
run;
Il me donne la sortie suivante, mais je dois le reste aussi ...:
EDIT: Je dois souligner qu'il pourrait y avoir des lignes vides partout dans le texte, mais je ne veux que l'information entre "Hello World" et le suivant ligne vide
Cela ne me donne pas la sortie désirée – Erosennin
Ah, je vois ce que vous avez fait, vous avez concaténé la sortie en deux lignes ... OK – Erosennin
Lorsque vous dites "append" n'entendiez-vous pas concaténer le texte? Aussi: la ligne de salut devrait-elle être incluse ou exclue? – Jetzler