Avatar billede tdaugaard Nybegynder
18. juli 2001 - 10:47 Der er 13 kommentarer og
1 løsning

RegExp pattern .. how ?

Jeg skal bruge et pattern der matcher serverside script blokke, dvs.:

<%

  . noget asp..
%>

og

<?php

... noget php

?>

Det jeg selv prøvede var:

<(%|?)([\\w :;-]+)(?|%)>

men æhm jeg stinker også lidt til RegExp ;o)
Avatar billede erikjacobsen Ekspert
18. juli 2001 - 11:08 #1
Har du det opdelt i flere linier? Man plejer, i normale sprog - kender intet til ASP - at
skulle angive match over flere linier med en option.
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:12 #2
Hmm ... jeg fandt ud af at \\w nok ikke lige var det korrekte at bruge ..

http://msdn.microsoft.com/library/default.asp?URL=/library/en-us/dnclinic/html/scripting051099.asp
\"Microsoft Beefs Up VBScript with Regular Expressions\"
En reference til M$ RegExp.

<%([.\\s\\n]+)

ovenstående gier True i en .Test()  men hvis jeg skriver

<%([.\\s\\n]+)%>

får jeg false :-(

Altså selve ASP koden som den skal matche (det er en ASP fil indlæst i en variabel) er på flere linier ...
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:15 #3
hæ hæ .. nu fandt jeg noget der virkede, men kan det virkeligt passe at det ikke kan gøres med mindre tegn ?

<%[.\\w\\s\\n\'\\t*=\\(\\)\"\",;:\\[\\]\\\\+!-><%\\?&]+%>

Jeg synes det ser lidt drabeligt ud ;o)
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:22 #4
hmm ..det virkede ikke _helt_ anyway :-(
Avatar billede erikjacobsen Ekspert
18. juli 2001 - 11:23 #5
Du skal have linieskift med. Men pas på, regulære udtryk er grådige. Du matcher
sikkert begge af disse i et hug:

    <% ... %> ... <% ... %>

med mindre der er en option i .... øh, hvad hedder det?, Jo: ASP, der gør
den ikke grådig. Kan du ikke bruge preg-erne i PHP?
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:25 #6
\\n er vist linieskift :-)

Jeg har en .Global og .IgnoreCase, begge sat til True (.Global matcher alle occurances af regexp\'en i strengen just FYI ..)
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:26 #7
Hmm .. eftersom det her er et ASP script sååe går det nok ikke med preg() i PHP :-(
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:32 #8
err .. .Global, when true matcher alle [osv..]
Avatar billede erikjacobsen Ekspert
18. juli 2001 - 11:40 #9
Ja, men hvordan over flere linier ?
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:40 #10
Måske er det nemmere at sige at den bare skal matche ALT mellem

<% og %> eller <? og ?>

spaces, tabs, linebreaks, specialchars .. you name it i want it to match it :o)
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 11:41 #11
hmm .. jeg er ikke helt med på det du snakker om med flere linier ? Jeg har hele ASP filen i een streng, den er ikke delt op i et array hvis det er det du mener ...
Avatar billede erikjacobsen Ekspert
18. juli 2001 - 14:24 #12
stadigvæk ved jeg ikke noget om ASP, men \"normale\" regulære udtryk standser
ved første linieskift, med mindre man angiver andet.
Avatar billede tdaugaard Nybegynder
18. juli 2001 - 14:26 #13
Hmm .. det er derfor \\n er med...

\\n matcher et linieskift, dvs. den kan matche over flere linier.
Avatar billede tdaugaard Nybegynder
21. juli 2001 - 18:12 #14
hmm... jeg tror ikke det kan lade sig gøre...

<%

.. asp ..

%>

noget html

<%


%>

vil blive taget som een ASP blok :-(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester