Avatar billede visto Professor
18. marts 2023 - 12:18 Der er 12 kommentarer og
1 løsning

Notepad++ - finde to adskilte "ord"

Jeg ønsker at finde forekomsten af to "ord" i en stribe filer. Der er en masse andet, ord, tegn og html koder imellem disse to.
Første forekomst er <!> og altså ikke et egentligt ord; det andet er et ord. Det er vigtigt at rækkefølgen er, som jeg angiver den, altså først <!> dernæst ordet. Søgningen skal altså finde alle filer, der indholder
<!>(en hel masse andet)Ord2

Hvordan gør jeg det i Notepad++ ?
Avatar billede bvirk Guru
19. marts 2023 - 09:31 #1
Prøv med search mode: regular expressions og søg vha dette

<!>.+Ord2

Forklaring: punktum betyder hvad som helst og + betyder en eller flere.

https://www.regular-expressions.info/tutorial.html

Emnet er ikke let i sin mangfoldighed, men når det alligevel er en mulighed i enhver blot nogenlunde editor er det fordi selv små tricks er rare at have.
Avatar billede visto Professor
19. marts 2023 - 10:41 #2
<!>.+Ord2 kan noget men finder ikke det, jeg ønsker.

Når jeg tester med
<!>.+er
finder den fx "<!>større</!> koncentration, den højere", hvor jeg har markeret det er, som den finder, med fede bogstaver.
Men den konkrete ting, jeg ønsker at finde er:
<!>(hvad som helst andet)InsRef, hvor InsRef står sådan: <?php echo InsRef('
og det kan den ikke finde. Jeg ved ikke hvad i denne kodestump, der forhindrer at den kan finde InsRef?
Avatar billede bvirk Guru
19. marts 2023 - 11:23 #3
linieskift måske - i visse (ikke multiline) modes kan punktum ikke betyde linieskift. Måske har notepad++ en multiline option der virker sammen med regex !
Avatar billede bvirk Guru
19. marts 2023 - 11:43 #4
prøv med [\s\S\n] i stedet for punktum
Avatar billede visto Professor
19. marts 2023 - 14:05 #5
Det virker!
Tak skal du have.

Hvis du kan og vil hjælpe med en mere i samme genre, vil jeg også gerne kunne finde <!> når det forekommer mellem <a og </a>.
Avatar billede bvirk Guru
19. marts 2023 - 16:43 #6
Denne virker i visual studio code

<a[^<]+<!>\n?[^<]+</a>

Tillader linieskift

Forstår det ikke helt.🤫
Avatar billede visto Professor
19. marts 2023 - 17:01 #7
Den virker ikke hos mig i Notepad++
Avatar billede bvirk Guru
19. marts 2023 - 17:19 #8
Hvad med denne:

<a[^<]+<!>[\s\S\n]?[^<]*</a>
Avatar billede visto Professor
19. marts 2023 - 18:04 #9
Nix
Avatar billede visto Professor
19. marts 2023 - 18:07 #10
Kan skråstreger forstyrre? Jeg ved ikke, om du har forstand på html, men der søges indeni links, fx i denne stil: <a href="http://www.freisadichieri.com/" target="_blank">Il <!>Consorzio</!> di Freisa</a>
Avatar billede bvirk Guru
19. marts 2023 - 18:50 #11
Ja, forstyrede - jeg kendte jo ikke din html og tænkte på at der kom en </!>

Der er forskel på regex slags, altså notepad++ kontra vscode - ikke så meget det grundliggende, men når de mindre almindelige features bliver brugt.

Dette anvender
https://www.regular-expressions.info/lookaround.html

og markerer kun <!> efter et <a - prøver endnu en gang om jeg rammer noget du kan bruge:
(?<=<a[^<]+)<!>
Avatar billede visto Professor
19. marts 2023 - 19:17 #12
Tak for din tålmodighed.
Desværre virkede dit nye forslag heller ikke.
Avatar billede visto Professor
20. marts 2023 - 15:19 #13
Da vi er ude i en udvidelse af mit oprindelige spørgsmål, og da jeg kunne forestille mig, at der blandt webdesignere kunne være en del, der bruger Notepad++, har jeg valgt at oprette et nyt spørgsmål om <!> indenfor link tags under kategorien webdesign: https://www.computerworld.dk/eksperten/spm/1041606

Jeg takker for din hjælp, og skulle du have flere forslag, foreslår jeg, du lægger dem i den nye tråd, og så vil jeg afslutte nærværende tråd.
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

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