RegEx проблем

4 отговора 143 прегледа
#1

RegEx проблем

Правя едно скриптче, което да чисти генериран от MS / Open Office html.
Използвам регулярни изрази, но предвид, че сега прохождам се натъквам на някои въпроси.

Например: Искам да махна това SDVAL, което Excel слага, без да остава допълнителнително празно интервалче след премахването му.


<TR>
<TD ALIGN=CENTER SDVAL="2955.008">2955.008</TD>
<TD ALIGN=LEFT> Shop 29</TD>
<TD ALIGN=CENTER>free</TD>
<TD ALIGN=LEFT><BR></TD>
</TR>


Как точно ще изглежда маската ако търсим съвпадение от вида
[празно място]SDVAL="[число тип double или int]"?

^[[:space:]]SDVAL=\"[0-9]{1,}\.{0,1}[0-9]{0,}\"$


Това е религия, момче! А не скапана пазарна икономика!
Отговор
в отговор на Бpyтa Избpaния #2

По-скоро...

ползвай preg_replace с примерно този регулярен израз:

\s?SDVAL\=\"?\d+\.?\d*\"?

Ето така:

$result = preg_replace("/\sSDVAL\=\"?\d+\.?\d*\"?/ig", "", $to_replace);

There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Отговор
в отговор на Koтapakът нa Шpьoдинrep #3

Re: По-скоро...

Благодарско, ама не става по този начин! Просто нищо не прави

Май трябва да си седна да 4-буквието да почета още ами да не си прося помощ по форумите!


Това е религия, момче! А не скапана пазарна икономика!
Отговор
в отговор на Бpyтa Избpaния #4

Ами да...

ако беше, щеше да забележиш че съм блял и съм допуснал грешка - замени modifier g със modifier m... Така:

$result = preg_replace("/\sSDVAL\=\"?\d+\.?\d*\"?/im", "", $to_replace);

There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Отговор
в отговор на Koтapakът нa Шpьoдинrep #5

Re: Ами да...

Ами то ми каза, че има грешка в модификатора, ама викам да не обвинявам сега


Това е религия, момче! А не скапана пазарна икономика!
Отговор