Jump to content
php.lv forumi

Recommended Posts

Posted

probleema shaada:

ir teksts, piemeeram

aaa bbbb ccc "ddd eee" fff
ir nepiecieshams izdabuut noshaa stringa massiivu, kuram eleementi buutu, piemeeram,
$arr[] = 'aaa';

$arr[] = 'bbbb';

$arr[] = 'ccc';

$arr[] = 'ddd eee';

$arr[] = 'fff';

viss buutu labi, ja nebuutu to peedinju, jo ar taam apziimee vienu elementu.

Posted

Vobšem šitais variants tīri labs, atliek tikai no pēdiņām atbrīvoties:

<?php
 $a = 'aaa bbbb ccc "ddd eee" fff';
 preg_match_all('@\w+|"[\w\s]+"@i', $a, $m);
 print_r($m);
?>
---
Array
(
   [0] => Array
       (
           [0] => aaa
           [1] => bbbb
           [2] => ccc
           [3] => "ddd eee"
           [4] => fff
       )

)

Posted

+ veel viena liidiziga probleeminja

vajag no teksta izmest aaraa tukshaas rindas, kuras atkaartojas

piemeers, ir teksts

asdasdas

asds

 

sdddssd

 

 

 

 

asdasdassadas

rezultaatam jaabuut
asdasdas

asds

 

sdddssd

 

asdasdassadas

ieverojot ka taas daudzaas jaaizstaaj ar vienu

 

meegjinaaju ar

preg_replace("/[\r\n]+[\s\t]*[\r\n]+/", "\r\n", $body);

bet tas aizvaac visas..

Posted

hmm, man nezkāpēc mans piemērs strādā... Īsti nesapratu, tev vajag visus enterus, kuri atkārtojās aizstāt ar vienu (kam arī rakstīju to regexpu)? Vai ja ir 3 vai vairāk enter, tad aizstāt tos ar diviem? Ja pēdējais variants, tad takš loģiski drusku pamaini izteiksmi: preg_replace("@[\r\n]{3,}@m", "\r\n\r\n", $text);

Posted

labi, ja jau shodien par to iesaaku, tad gribu pabeigt liidz galam.

man tagad ir

preg_match_all('@[\wēūīōāšģķļžčņ]+|"[\wēūīōāšģķļžčņ\s]+"@ui', ...

 

bet ja man vajag atljaut arii nestandarta simbolus? (vispaar visus iznjemot speisu) vai ir kaads veids kaa to te panaakt?

Posted
ehh nestraadaa shis variants

17750[/snapback]

Nu ja nestrādā, tad jākustina smadzenes un jādomā jauns variants, nevis smagi jāpūš:

preg_match_all('@"[^"]+"|\S+@', ... );

×
×
  • Create New...