Vinnaren i pepparkakshustävlingen!
2017-12-11, 16:43
  #1
Medlem
Letar efter en text editor som har "interactive search"? Helst med funktionen "fuzzy" såsom t ex Firefoxs Awesomebar och sök i OneNote?
Citera
2017-12-11, 16:46
  #2
Medlem
Notepad++ har stöd för sökningar med regex, så kan du det så lär det väl funka för dig.
Citera
2017-12-11, 17:11
  #3
Medlem
Citat:
Ursprungligen postat av abloodywar
Notepad++ har stöd för sökningar med regex, så kan du det så lär det väl funka för dig.
Tack för tipset, ska kolla in det. Kan dock ingenting om regex, är det brant inlärningskurva?
Citera
2017-12-11, 17:41
  #4
Medlem
Mia-Rovys avatar
Citat:
Ursprungligen postat av Anvandarnamn2
Tack för tipset, ska kolla in det. Kan dock ingenting om regex, är det brant inlärningskurva?
Om du är helt främmande inför det så kan du nog uppfatta det som lite brant.

Regex är betydligt mer flexibelt, men det är också omständigare.

Jag kan t.ex. inte komma på något smidigt sätt att skriva regex så att det blir som fuzzy.

.*hej.* söker igenom allt med förekomsten av "hej", oavsett vad det börjar eller slutar på, t.ex. ""bananhejbanan"
.*[hej]+.* söker igenom allt med förekomsten av "h", "e" och "j", men där ordningen inte spelar någon roll, t.ex. "kaninjhekanin"

Tycker inte att regex lämpar sig för ditt ändamål
__________________
Senast redigerad av Mia-Rovy 2017-12-11 kl. 17:45.
Citera
2017-12-11, 17:51
  #5
Medlem
Citat:
Ursprungligen postat av Mia-Rovy
Om du är helt främmande inför det så kan du nog uppfatta det som lite brant.

Regex är betydligt mer flexibelt, men det är också omständigare.

Jag kan t.ex. inte komma på något smidigt sätt att skriva regex så att det blir som fuzzy.

.*hej.* söker igenom allt med förekomsten av "hej", oavsett vad det börjar eller slutar på, t.ex. ""bananhejbanan"
.*[hej]+.* söker igenom allt med förekomsten av "h", "e" och "j", men där ordningen inte spelar någon roll, t.ex. "kaninjhekanin"
Det går ju att göra det lite mer "fuzzy", t ex genom att kunna matcha "heeej", "hai", "hejsan" osv med typ
Kod:
h(a|e){0,9}(j|i|san|l{0,2})(san|o){0,1}
Går antagligen att göra det mer elegant, men som ett exempel.
Citera
2017-12-11, 18:11
  #6
Medlem
Citat:
Ursprungligen postat av Mia-Rovy
Om du är helt främmande inför det så kan du nog uppfatta det som lite brant.

Regex är betydligt mer flexibelt, men det är också omständigare.

Jag kan t.ex. inte komma på något smidigt sätt att skriva regex så att det blir som fuzzy.

.*hej.* söker igenom allt med förekomsten av "hej", oavsett vad det börjar eller slutar på, t.ex. ""bananhejbanan"
.*[hej]+.* söker igenom allt med förekomsten av "h", "e" och "j", men där ordningen inte spelar någon roll, t.ex. "kaninjhekanin"
Finns det något sätt att söka efter flera ord på radbasis? Om man t ex kommer ihåg att raden/strängen innehåller "hej" och "2017" men att dessa ord inte återföljs av varandra?
Citera
2017-12-11, 18:39
  #7
Medlem
W.Irvings avatar
Citat:
Ursprungligen postat av Anvandarnamn2
Finns det något sätt att söka efter flera ord på radbasis? Om man t ex kommer ihåg att raden/strängen innehåller "hej" och "2017" men att dessa ord inte återföljs av varandra?

Kod:
hej.*2017

Söker i just den ordningen.
Vill du kolla om 2017 förekommer före hej måste du kolla omvänt också.

Kod:
hej.*2017|2017.*hej

Där:
Kod:
. = vilket tecken som helst
* =  ett eller fler förekomster av föregående tecken
| = "eller", d.v.s. uttrycket före eller efter stolpen

Inlärningströskeln för regex är riktigt hög, och det kan vara ett sattyg att använda även för de lite erfarna.
Observera att du inte kan använda skiljetecken hur som helst i regex, som synes ovan! En backslash före löser det mesta:
Kod:
Hitta en mening som avslutas med punkt\.
Citera
2017-12-11, 19:03
  #8
Medlem
W.Irvings avatar
Citat:
Ursprungligen postat av Anvandarnamn2
Finns det något sätt att söka efter flera ord på radbasis? Om man t ex kommer ihåg att raden/strängen innehåller "hej" och "2017" men att dessa ord inte återföljs av varandra?

Läste om din fråga. Du menar att du vill hitta förekomster av "hej säger jag till år 2017", men inte "hej 2017" eller "hej2017"?
Du behöver ange kriterierna för vad som ska matcha, och jag gissar att det räcker med att leta efter två tecken, vilka som helst, mellan de två orden:

Kod:
hej.{2,}2017
eller alltså
Kod:
hej.{2,}2017|2017.{2,}hej
för att leta efter det omvända också.

NB: separerar man orden med två mellanslag matchar då även det.
Citera
2017-12-11, 19:13
  #9
Medlem
Citat:
Ursprungligen postat av W.Irving
Kod:
hej.*2017

Söker i just den ordningen.
Vill du kolla om 2017 förekommer före hej måste du kolla omvänt också.

Kod:
hej.*2017|2017.*hej

Där:
Kod:
. = vilket tecken som helst
* =  ett eller fler förekomster av föregående tecken
| = "eller", d.v.s. uttrycket före eller efter stolpen

Inlärningströskeln för regex är riktigt hög, och det kan vara ett sattyg att använda även för de lite erfarna.
Observera att du inte kan använda skiljetecken hur som helst i regex, som synes ovan! En backslash före löser det mesta:
Kod:
Hitta en mening som avslutas med punkt\.
Det där fungerar faktiskt utan att vara allt för omständligt för vad jag ska ha det till, i alla fall så länge som ett tredje sökord inte behövs, för då blir det ju en riktig röra om jag förstått det rätt. Tack för infon.

Edit:
Andra varianten fungerade också, men "inte" är inte så viktigt.
Edit 2:
Dvs det blir strul om man behöver ett tredje sökord och man inte vet ordningen på orden.
__________________
Senast redigerad av Anvandarnamn2 2017-12-11 kl. 19:17.
Citera
2017-12-11, 19:36
  #10
Medlem
W.Irvings avatar
Citat:
Ursprungligen postat av Anvandarnamn2
Det där fungerar faktiskt utan att vara allt för omständligt för vad jag ska ha det till, i alla fall så länge som ett tredje sökord inte behövs, för då blir det ju en riktig röra om jag förstått det rätt. Tack för infon.

Edit:
Andra varianten fungerade också, men "inte" är inte så viktigt.
Edit 2:
Dvs det blir strul om man behöver ett tredje sökord och man inte vet ordningen på orden.

Nej, mitt första exempel var fel eftersom . matchar mellanslag, vilket hade gett träff på "hej 2017", vilket du ville undvika.

Man kan även göra

Kod:
hej.+\S+.+2017|2017.+\S+.+hej

Vilket ger dig "hej", följt av ett eller fler tecken (.+), följt av ett eller fler tecken som INTE är mellanslag (\S+), följt av ett eller fler tecken (.+), följt av "2017", eller omvänt.

Med tre sökord är det bara att fortsätta bygga på. Antalet stolpar ökar snabbt, så snart får man nog börja titta på "lookahead", det beror ju lite på vilka kombinationer av ord som är intressanta också, kanske ord 1 och 3 inte är intressant, men ord 3 och 2 är det.. o.s.v.

Det borde finnas en regex-tråd nånstans du kan få hjälp i, titta under systemutveckling.
Citera
2017-12-11, 20:03
  #11
Medlem
Citat:
Ursprungligen postat av W.Irving
Nej, mitt första exempel var fel eftersom . matchar mellanslag, vilket hade gett träff på "hej 2017", vilket du ville undvika.
sorry, oexakt formulering från min sida, borde sett ut mer som följer:
Citat:
Ursprungligen postat av Anvandarnamn2
Finns det något sätt att söka efter flera ord på radbasis? Om man t ex kommer ihåg att raden/strängen innehåller "hej" och "2017" men att dessa ord troligtvis inte återföljs av varandra?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback