Page 1 of 1

Hledání - logické operátory pro vyhledávaná slova

Posted: 19 Jan 2008, 01:02
by zarevak
Dobrý den,
v anglické části fóra uživatel timmy2 přichází s nápadem umožnit hledat složky neobsahující určité soubory. Toto mne insirovalo k tomuto příspěvku, když jsem nedávno řešil několik úloh:
1) Najít všechny soubory, které neobsahují daný text
2) Najít všechny soubory, které obsahují text "A" a text "B"
3) Najít všechny soubory, které obsahují "A" nebo "B"
4) Najít všechny soubory, které obsahují "A" ale ne "B"
(body 1 a 4 se týkaly vyhledání souborů, které je potřeba aktualizovat a tudíž neobsahují nejnovější řetězce)

Body 2 a 3 lze obejít použitím regulárních výrazů (u 2 třeba myslet na obě možná pořadí slov v souboru) a pravděpodobne by šel pomocí regulárních výrazů vyřešit i bod 4. Na bod 1 si pomocí regulárních výrazů již netroufnu a tak si troufám navrhnout do Hledání implementovat základní výrazovou logiku: AND, OR a NOT (případně ještě se závorkami).
BTW: hledání lze opakovat a skládat (AND/OR/AND NOT) dohromady, čímž pravděpodobně ve dvojnásobném čase a s několikanásobným usílím dosáhneme stejného výsledku. Pokud ve výrazové logice povolíme závorky, opakovaným hledáním již nebude možné úlohu řešit.

Zadáním: kočka OR pes AND NOT morče by byly nalezeny všechny soubory, které obsahují zmínku o kočce nebo psu, ale bez zmínky o morčeti.
Pro vyhledání souborů bez určitého textu by se zadalo: NOT text
Pokud je třeba zadat text s mezerou, je možné použít uvozovky: kočka AND NOT "siamská kočka" - všechny soubory o kočkách, ale ne siamských kočkách

Možné rozšíření:
- kombinace regulárních výrazů a logických operátorů ("(19|20)[0-9]{2}" AND NOT 2008 - hledá roky od 1900 do 2099 bez 2008)
- operátor NEAR, který by hledal text "A" blízko slova "B". Blízko = jen několik slov okolo slova B (případně žádné slovo, ale jen bílé znaky a interpunkční znaménka). Výrazu siamská NEAR kočka by tedy odpovídalo spojení siamská modrá kočka ale ne spojení: Siamská vláda odsouhlasila důležitý zákon. Kočka se tak stala národním zvířetem.
Možné problémy:
- "siamská kočka" AND NOT kočka by nevyhledalo žádné soubory

Posted: 19 Jan 2008, 08:44
by Ether
Regular expression obsahují takzvané look-aheads, kterými se dají zařídit i ostatní zmiňované body. Problém je v tom, že implementace, která je v AS, toto pravděpodobně nepodporuje (hází chybu o neplatné syntax).

Re: Hledání - logické operátory pro vyhledávaná slova

Posted: 19 Jan 2008, 16:39
by cincura.net
Toto je velmi dobry napad. +1 za me.
zarevak wrote: - operátor NEAR, který by hledal text "A" blízko slova "B". Blízko = jen několik slov okolo slova B (případně žádné slovo, ale jen bílé znaky a interpunkční znaménka). Výrazu siamská NEAR kočka by tedy odpovídalo spojení siamská modrá kočka ale ne spojení: Siamská vláda odsouhlasila důležitý zákon. Kočka se tak stala národním zvířetem.
Operator NEAR je pekny, ale vetsinou jej kazdy chce jinak (pripadne nikdo nevi jak funguje). Takze ten bych klidne vypustil. Jeho simulace pomoci RE neni tezka.

Posted: 19 Jan 2008, 16:42
by cincura.net
ether wrote:Regular expression obsahují takzvané look-aheads, kterými se dají zařídit i ostatní zmiňované body. Problém je v tom, že implementace, která je v AS, toto pravděpodobně nepodporuje (hází chybu o neplatné syntax).
OT: Je zajimave, ze se tomu porad rika RE, i kdyz uz pak regularni vlastne nejsou. :roll:

podpora prohledavani

Posted: 15 Feb 2008, 05:49
by fraktik
Okno find pouzivam velice casto (mam odpor vuci google desktop, Nero scout i tem vista hledacum) - a ocenil bych krom vyse uvedeneho i nejakou rychlou napovedu (neco jako je v "Regular Expressions Syntax" v helpu - jen strucnejsi a vice poruce - napriklad jen nekolik zakladnich ukazek + odkaz do help okna)...

Re: Hledání - logické operátory pro vyhledávaná slova

Posted: 12 Nov 2024, 10:58
by AD7
XYplorer je v tomto celkom ďaleko.

Re: Hledání - logické operátory pro vyhledávaná slova

Posted: 12 Nov 2024, 18:26
by therube
You're looking for file names (rather then contents within the files) that meet your criteria?
(Everything [1.5] can also search contents.)

There is nothing better then, Everything for finding files.
(Even better is, Everything 1.5 Alpha.)

Code: Select all

foo bar   -> find foo AND bar
foo bar   -> find foo AND bar
foo | bar -> find foo OR bar
foo !bar  -> find foo, but NOT bar

cat dog !"guinea pig", find cat AND dog, but NOT "guinea pig"
& it does regex & everything else under the sun.


---


Hledáte názvy souborů (spíše než obsah souborů), které splňují vaše kritéria?
(Vše [1.5] může také prohledávat obsah.)

Není pak nic lepšího, Vše pro hledání souborů.
(Ještě lepší je, Everything 1.5 Alpha.)


& dělá regulární výraz a všechno ostatní pod sluncem.

Re: podpora prohledavani

Posted: 30 Mar 2025, 13:55
by AD7
fraktik wrote: 15 Feb 2008, 05:49 Okno find pouzivam velice casto (mam odpor vuci google desktop, Nero scout i tem vista hledacum) - a ocenil bych krom vyse uvedeneho i nejakou rychlou napovedu (neco jako je v "Regular Expressions Syntax" v helpu - jen strucnejsi a vice poruce - napriklad jen nekolik zakladnich ukazek + odkaz do help okna)...
Nejaké nástroje s lepším hľadaním:
1. FileSeek Free?
https://www.fileseek.ca/Compare/

2. FileBoss 3
http://www.theutilityfactory.com/

možná i:
MultiCommander, http://www.multicommander.com/
Mythicsoft FileLocator (má free verziu), https://www.mythicsoft.com/
SpeedCommander, https://www.speedproject.com/
*TagSpaces, https://www.tagspaces.org/downloads/
ugrep file pattern searcher, https://ugrep.com/
UltraSearch Pro, https://www.jam-software.com/ultrasearch