webForumDet fria alternativet

Formatera text.

13 svar · 356 visningar · startad av Fredde Mannen

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#1

Jag har en lite fundering, när man läser in text från en text fil, och sen vill man formatera den!

Hur skall man gå till väga för att ersätta "\n" med "<br />" osv.

Har Ni något tips på en bra sida om Perl och användbara funktioner?

// Tack på förhand

Fredde Mannen.

SPiNMedlem sedan mars 20005 832 inlägg
#2

Hej där! ;)

Följande bör fungera:

$yourString =~ s/\n/<br \/>/i;
Fredde MannenMedlem sedan nov. 20013 498 inlägg
#3

Tack tack!!!

SPiN skrev:

Hej där! ;)

Följande bör fungera:

$yourString =~ s/\n/<br \/>/i;

Det må man säga, perl skiljer sig en hel del från våra mer moderna språk som PHP, VbScript! :e

LMDMedlem sedan jan. 2003100 inlägg
#4

Fredde Mannen skrev:

Det må man säga, perl skiljer sig en hel del från våra mer moderna språk som PHP, VbScript! :e

Eeeh, vad snackar du om? Det finns inget annat språk (mig veterligen) som har regexp-operatorer så tätt knutna till språket som perl har. I php är du tvungen att anropa en speciell funktion för att kunna göra motsvarande sak. I perl går det direkt med s-operatorn, m-operatorn för att matcha osv. Betänk att mycket av det som vi idag tar för givet inom regexp utvecklades till perl först.

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#5

LMD skrev:

Fredde Mannen skrev:

Det må man säga, perl skiljer sig en hel del från våra mer moderna språk som PHP, VbScript! :e

Eeeh, vad snackar du om? Det finns inget annat språk (mig veterligen) som har regexp-operatorer så tätt knutna till språket som perl har. I php är du tvungen att anropa en speciell funktion för att kunna göra motsvarande sak. I perl går det direkt med s-operatorn, m-operatorn för att matcha osv. Betänk att mycket av det som vi idag tar för givet inom regexp utvecklades till perl först.

Det jag menar är att det är mer underlättande med färdiga funktioner ex.

i ASP:

Replace(strText,VbCrlf,"<br />")

i PHP:

nl2br($strText);

Det är ju inte all som har koll på vad alla operatorer gör som ex:

http://www.blazonry.com/perl/regexp_ref.php skrev:

Modifiers
i = case-insensitive pattern matching.

g = global replace, or replace all

m = Treat string as multiple lines. That is, change ``^'' and ``$'' from matching at only the very start or end of the string to the start or end of any line anywhere within the string

s = Treat string as single line. That is, change ``.'' to match any character whatsoever, even a newline, which it normally would not match.
x = Extend your pattern's legibility by permitting whitespace and comments.

m.fl.

LMDMedlem sedan jan. 2003100 inlägg
#6

Fredde Mannen skrev:

Det jag menar är att det är mer underlättande med färdiga funktioner ex.

i ASP:

Replace(strText,VbCrlf,"<br />")

i PHP:

nl2br($strText);

Det är ju inte all som har koll på vad alla operatorer gör som ex:

Perl utvecklades i unixvärlden, och för den som använt verktyg som sed och awk är perls syntax och operatorer inte så konstiga. Jag har hellre några få kraftfulla operatorer än många plottriga funktioner som endast kan en sak.
Det finns endast fyra operatorer i perl relaterade till regexp, och de ger en enorm styrka åt språket.

För en tutorial, se
http://www.perldoc.com/perl5.8.0/pod/perlretut.html
(rent allmänt är perldoc.com en väldigt bra site för perldokumentation)

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#7

Tackar! :) Antagligen för nedarbetad i ASP och PHP, borde kanske ha börjat med Perl innan man började med de andra! :e

LMDMedlem sedan jan. 2003100 inlägg
#8

Fredde Mannen skrev:

Tackar! :) Antagligen för nedarbetad i ASP och PHP, borde kanske ha börjat med Perl innan man började med de andra! :e

Tja, själv använder jag perl för allt möjligt, men inte för webutveckling.. Webforum tycker tydligen att perl för evigt är förknippat med cgi.. ;) (idag använder man väl hellre mod_perl och saker som mason (som ger möjlighet att blanda perl och html, ungefär som man blandar php och html), http://www.masonhq.com ) om man webutvecklar med perl.

JojoxxMedlem sedan juni 20004 306 inlägg
#9

LMD skrev:

Webforum tycker tydligen att perl för evigt är förknippat med cgi...

Att de är förknippade ser jag väl egentligen inget fel i, för visst är de förknippade. Perl torde vara det vanligaste script-språket som används för CGI. Sedan kan man tycka att CGI är föråldrat och kanske inte har något existensberättigande, men - det finns inte många finesser med ett spätt, men det fungerar och det finns faktiskt en del som fortfarande använder CGI fortfarande trots att det är långsamt och resurskrävande. mod_perl diskuteras även det här men också på Apache-forumet beroende hur frågan är ställd.

LMDMedlem sedan jan. 2003100 inlägg
#10

Jojoxx skrev:

Att de är förknippade ser jag väl egentligen inget fel i, för visst är de förknippade. Perl torde vara det vanligaste script-språket som används för CGI. Sedan kan man tycka att CGI är föråldrat och kanske inte har något existensberättigande, men - det finns inte många finesser med ett spätt, men det fungerar och det finns faktiskt en del som fortfarande använder CGI fortfarande trots att det är långsamt och resurskrävande. mod_perl diskuteras även det här men också på Apache-forumet beroende hur frågan är ställd.

Visst, men att perl överhuvudtaget ligger i kategorin "webbrelaterade forum", tycker jag är märkligt. Perl blev populärt till webbtillämpningar pga sin styrka i att hantera och manipulera text, men skapades inte primärt för detta (webben). Däremot skapades t ex php för webtillämpningar, så att det ligger i "webbrelaterade forum" ser jag inte som konstigt. Är det OT om jag skriver om ett perlproblem som inte är webrelaterat här?

Och databaser? Dessa forum om några bör väl placeras i en "neutral zon". Men men... tråden börjar kanske bli OT.

JojoxxMedlem sedan juni 20004 306 inlägg
#11

Men men... tråden börjar kanske bli OT.

Nejdå, ingen fara. Den handlar ju fortfarande om Perl :) Jag håller helt med om att perl (som även namnet antyder, Practical Extraction and Report Language) inte är utvecklat specifikt för webbruk. Men kopplingen mellan Perl och CGI är kanske starkare åt andra hållet, och forumet kanske hellre skulle heta "CGI, Perl" än vice versa.

Att då Perl inte ligger ensamt under Programmerings forumet beror helt enkelt att vi inte funnit ett tillräckligt start intresse för det. På samma sätt delar ASP och VBscript forum, även om kopplingen där kanske är starkare.

Det hade varit skoj om det fanns tillräckligt många Perl-intresserade läsare av wF för att få ett eget forum, men hellre att det får dela forum än inget alls.

Icke webbrelaterade Perl-frågor är givetvis välkomna. Då kanske vi en dag kan få ett eget forum :)

kimuMedlem sedan apr. 20033 inlägg
#12

Precis som SPiN skriver så är s-operatorn den bästa i det här fallet. Men man bör köra med /g för att alla, istället för bara det första, \n skall bytas ut. Sen behövs inte /i eftersom \n inte påverkas av case.
Så följande byter ut alla \n mot <br />

$yourString =~ s|\n|<br />|g;

Notera att jag använde | för att åtskilja s-operatorns tre delar så man slipper escapea / i <br />. Ett annat populärt sätt är att skriva s{ersätt det här}{med det här}.

Vill passa på att hålla med om att det känns klart kraftfullare, när man väl har lärt sig språket/läsa dokumentationen, att ha en kraftfull syntax i ett fåtal operatorer en en drös funktioner med ett enda syfte. TMTWWTDI ;)

CGI.pm är perfekt för enklare webbutveckling. Men eftersom den är stor, tung och långsam så är väl mod_perl att föredra för CGI-hantering med Perl.

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#13

kimu skrev:

Precis som SPiN skriver så är s-operatorn den bästa i det här fallet. Men man bör köra med /g för att alla, istället för bara det första, \n skall bytas ut. Sen behövs inte /i eftersom \n inte påverkas av case.
Så följande byter ut alla \n mot <br />

$yourString =~ s|\n|<br />|g;

Notera att jag använde | för att åtskilja s-operatorns tre delar så man slipper escapea / i <br />. Ett annat populärt sätt är att skriva s{ersätt det här}{med det här}.

Vill passa på att hålla med om att det känns klart kraftfullare, när man väl har lärt sig språket/läsa dokumentationen, att ha en kraftfull syntax i ett fåtal operatorer en en drös funktioner med ett enda syfte. TMTWWTDI ;)

CGI.pm är perfekt för enklare webbutveckling. Men eftersom den är stor, tung och långsam så är väl mod_perl att föredra för CGI-hantering med Perl.

Tack e tack! :e

LMDMedlem sedan jan. 2003100 inlägg
#14

kimu skrev:

Vill passa på att hålla med om att det känns klart kraftfullare, när man väl har lärt sig språket/läsa dokumentationen, att ha en kraftfull syntax i ett fåtal operatorer en en drös funktioner med ett enda syfte. TMTWWTDI ;)

Halleluja brother! Amen! och liknande utrop!
:i :birp :bire :e

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb