Avatar billede repsak Nybegynder
05. januar 2004 - 11:55 Der er 8 kommentarer

Match kommentar

Hvordan matcher jeg en prog-kommentar på formen:
/**
min kommentar
som kan fylde flere linjer
*/
?
Mit bud /\*\*.*\*/ virker ikke :-(
Avatar billede overchord Nybegynder
05. januar 2004 - 12:05 #1
hvilken compiler bruger du?
Kommentarer afhaneger ofte af programmeringssprog
F.eks i c/c++ bruger man som oftest:
/* Dette er en kommentar */
Avatar billede repsak Nybegynder
05. januar 2004 - 12:09 #2
Jeg bruger C#. Jamen det er lige meget, for /\*.*\*/ virker heller ikke :-)
Avatar billede squashguy Nybegynder
05. januar 2004 - 12:09 #3
prøv

/\*\*.*?\*/
Avatar billede repsak Nybegynder
05. januar 2004 - 12:15 #4
squashguy -> sorry...
Jeg har en mistanke om at det er ny-linje som driller her, for det virker hvis det bare står på én linje
Avatar billede Slettet bruger
05. januar 2004 - 16:40 #5
Hvis den bruger Perl-kompatible regexps er der 2 faktorer, der spiller ind her:

1) Grådighed (Klaret med squashguys forslag)
2) dot-match-newline (Som repsak nævner)

Følgende kan måske klare det:

/\/\*.*\*\//Us

U slår grådighed fra, og s sætter at .* også vil matche newlines. Bemærk, at jeg har tage //-rammen om regexp med. Hvis de ikke skal med, skal der nok bruges en anden metode til at sætte de to options.
Avatar billede repsak Nybegynder
26. januar 2004 - 16:28 #6
Undskyld ventetiden...
sandbox -> ved ikke hvordan grådighed virker, eller hvordan man sætter det i C#.NET?
Avatar billede Slettet bruger
26. januar 2004 - 16:54 #7
Jeg kender ikke noget særligt til ASP eller de sprog, man programmerer ASP med. Desværre for dig. Det eneste jeg egentlig ved om C# er at dets grundlæggende syntaks ligner C og dermed også PHP, men jeg kender intet til C#'s specifikke regex-implementation.
Avatar billede calundan Nybegynder
30. januar 2004 - 21:12 #8
I .NET skal du bare sætte et spørgsmålstegn efter din quantifier, så bliver den grådige doven (lazy).

Du burde forresten kunne benytte squashguy regex til din kommentar matchning, du skal bare huske at sætte RegexOptions.Multiline (inline m) på dit regex objekt.

Bemærk inline parameterne i sandbox's eksempel: U findes ikke i .NET (angives med det tidligere nævnte ? efter de enkelte quantifiers. s betyder singleline !!!)
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