Avatar billede crapman Nybegynder
22. august 2005 - 20:10 Der er 11 kommentarer og
1 løsning

Reg exp måske?

Hejsa,
Jeg har en helvedes lang streng med alt indholdet fra en .asp fil... Jeg skal nu finde alle de steder hvor trans("...blabla") er brugt, og liste indholdet.. Altså skal jeg have en liste, som i dette tilfælde ville vise: ...blabla

funktionen trans() er brugt mange steder, så jeg vil altså have en komplet liste over indholdet fra dem allesammen.
Avatar billede rednex Nybegynder
22. august 2005 - 20:33 #1
Prøv:

$matches = array();
preg_match_all('/trans\(\"([^\"]*)\"\)/is', $tekst, $matches);
print_r($matches);
Avatar billede crapman Nybegynder
22. august 2005 - 20:36 #2
Ehm.... kan du vb?
Avatar billede rednex Nybegynder
22. august 2005 - 20:42 #3
Hovsa, troede jeg listede rundt i PHP kategorien :P Det må du undskylde.
Avatar billede crapman Nybegynder
22. august 2005 - 20:44 #4
Det er okay :)

Er der andre der kan hjælpe?
Avatar billede busschou Praktikant
22. august 2005 - 20:59 #5
hmm selve det regulære udtryk er måske godt nok
Du kan her se hvordan du i vbscript laver henholdsvis en test og en replace på et regulært udtryk, så er det blot at indsætte rednex´s udtryk i eksemplet sammen med din tekst :o)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsmthTest.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsmthReplace.asp
Avatar billede crapman Nybegynder
22. august 2005 - 21:18 #6
Hmm hvordan bygger jeg mit pattern op i asp?

Jeg får en syntax error, fordi den pattern har lavet indeholder "

Fejlen:


Microsoft VBScript compilation error '800a03ea'

Syntax error

/core/functions/trans_scan.asp, line 81

response.write RegExpTest("/trans\(\"([^\"]*)\"\)/is", htmlencode(f.ReadAll))
--------------------------------------------^
Avatar billede busschou Praktikant
22. august 2005 - 21:20 #7
ahh ja i php skal " escapes som \" i vbscript skal det være ""
fuldstændig som når du normalt laver strenge :o)
så prøv
response.write RegExpTest("/trans\(""([^\"]*)""\)/is", htmlencode(f.ReadAll))
Avatar billede busschou Praktikant
22. august 2005 - 21:21 #8
hov sådan her
response.write RegExpTest("/trans\(""([^""]*)""\)/is", htmlencode(f.ReadAll))
Avatar billede busschou Praktikant
22. august 2005 - 21:22 #9
jeg er ikke så stærk i reg.exp, så det er muligt de også skal escapes i reg.exp og derved bliver \"" ... og jeg kan heller ikke lure om udtrykket ellers giver det helt korrekte desværre.
Ville mest bare give links så du kunne se hvordan man udfører udtrykket i asp :o)
Avatar billede nielle Nybegynder
22. august 2005 - 21:30 #10
<%
StringToSearch = "qwerty trans(""...blabla"") asdfgh trans(""...blabla #2"") zxcvbn"
Response.Write StringToSearch & "<br>"

Set regEx = New RegExp
regEx.Pattern = "trans\(""(.*?)""\)"
regEx.Global = True
regEx.IgnoreCase = True
regEx.MultiLine = True

Set CurrentMatches = regEx.Execute(StringToSearch)

If CurrentMatches.Count > 0 Then
    For Each CurrentMatch in CurrentMatches
        If CurrentMatch.SubMatches.Count > 0 Then
            Response.Write CurrentMatch.SubMatches(0) & "<br>"
        End If
    Next
End If

Set regEx = Nothing
%>
Avatar billede crapman Nybegynder
22. august 2005 - 21:57 #11
det ser ud til at virke... med lidt modikationer.. ;) smid et svar...
Avatar billede nielle Nybegynder
22. august 2005 - 22:05 #12
Svar :^)
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