Schrift
[thread]8538[/thread]

regulärer ausdruck richtig?



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
Gast Gast
 2006-11-29 12:26
#72051 #72051
hallo, ich habe einen string -> $inhalt
in diesem können sachen stehen wie "zelleninhaltblablabla"(->beispiel 1) oder aber auch "<font color=blue>zelleninhalt</font>blablabla"(->beispiel 2)
jetz hab ich einen regulären ausdruck und zwar:

Code: (dl )
$inhalt =~ s/\<.+?\>//g;


nach dieser substitution sollten keine html-tags mehr vorkommen in der variable also sollte beispiel 2 genauso aussehn wie beispiel 1...ist das der fall?
ist der reguläre ausdruck richtig?

danke schon im vorraus für antworten
renee
 2006-11-29 12:44
#72052 #72052
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Warum probierst Du's nicht einfach aus? :p Sieht ganz gut aus. Aber vielleicht ist auch CPAN:HTML::Strip etwas für Dich...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kale_1990
 2006-11-29 12:53
#72053 #72053
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo, habs schon ausprobiert und funktioniert auch fast so wie ich will...
das einzige ist:
angenommen: ->inhalt1 = "das ist ein test"
->inhalt2 = "<font coler=blue>das ist ein</font>test"
dann ist inhalt2 ="das ist eintest" wenn ich jetzt als ersetzungstext noch ein leerzeichen abgeb dann ist es " das ist ein test"...dann ist das leerzeichen am anfang.... kann ich das irgendwie verhindern oder hat jemand eine idee....das html::stripe muss ich mir noch anschauen...aber danke schon mal :p
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
kale_1990
 2006-11-29 13:11
#72054 #72054
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
so hallo...ich hab mir das mit html::stirp angeschaut...und ich glaub das wäre gut...nur nachdem ich nicht allzu gut in englsich bin und keine gute deutsche seite gefunden habe wollte ich fragen wie ich es einbaune muss das die tags substituiert werden?!?!
ist es richtig wenn ich statt

Code: (dl )
$inhalt =~ s/\<.+?\>//g;


das hier verwende?

Code: (dl )
1
2
3
4
my $tag = HTML::Strip->new();

my $inhalt = $tag
$tag->eof;
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
kale_1990
 2006-11-29 13:14
#72055 #72055
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
oh wollte statt "...::Strip->new.." das hier verwenden: "...::Strip->clear_striptags()..."
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
renee
 2006-11-29 13:23
#72056 #72056
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es geht schon, ist aber hässlich:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use strict;
use warnings;

my @strings = ("das ist ein test","<font coler=blue>das ist ein</font>test");

for my $string(@strings){
$string =~ s!(<.*?>)!$` ne ''? " " : ''!eg;
print $string,"\n";
}
\n\n

<!--EDIT|renee|1164799782-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-11-29 13:28
#72057 #72057
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mit HTML::Strip funktioniert das klasse!
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;
use HTML::Strip;

my @strings = ("das ist ein test","<font coler=blue>das ist ein</font>test");

my $hs = HTML::Strip->new();
for my $string(@strings){
my $text = $hs->parse($string);
$hs->eof;
print $text,"\n";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kale_1990
 2006-11-29 13:51
#72058 #72058
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
also ich habs jetz vorläufig mal mit regulären ausdrücken gemacht, und war so:

Code: (dl )
1
2
$inhalt =~ s/\<.+?\>/ /g;
$inhalt =~ s/^\s//;


das mit dem HTML::Strip muss ich mir noch genauer anschaun...auch das modul hab ich nicht!
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
renee
 2006-11-29 13:54
#72059 #72059
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
das < und das > brauchst Du nicht escapen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
bloonix
 2006-11-29 17:00
#72060 #72060
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=kale_1990,29.11.2006, 11:53]->inhalt2 = "<font coler=blue>das ist ein</font>test"
...
$inhalt =~ s/\<.+?\>/ /g;[/quote]
Wenn du hier für </font> ein Leerzeichen einfügst, dann verfälscht du den
Text, denn auch im Browser würde

das ist eintest

angezeigt werden! Beispiel:

<font coler=blue>H</font><font coler=red>a</font><font coler=yellow>l</font><font coler=green>l</font><font coler=white>o</font>

Es wäre ein buntes "Hallo", du würdest daraus ein

H a l l o

machen.\n\n

<!--EDIT|opi|1164812496-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2006-11-29 12:26.