Textsuche in Archiven
Moderators: Hacker, Stefan2, white
Textsuche in Archiven
Hallo,
ich versuche über Textsuche Dokumente zu finden die eine vage Zeichenfolge enthalten. Da ich nicht genau weiß wie lang die Zeichenkette ist, habe die Option "Reg.Ausdruck" aktiviert. Ich suche erst einmal nach 6 stelligen Zeichenketten.
Text suchen: #?????
Statt der genannten Archive, erhalte ich eine Fehlermeldung.
[img]http://s1.directupload.net/images/140411/wlymr8h2.jpg[/img]
Er gibt die Meldung einen Sinn? Funktioniert die Suche nicht mit Platzhaltern ? (Platzhalter für ein Zeichen "?")
Ich nutze TC 8.51 RC2 x64!
ich versuche über Textsuche Dokumente zu finden die eine vage Zeichenfolge enthalten. Da ich nicht genau weiß wie lang die Zeichenkette ist, habe die Option "Reg.Ausdruck" aktiviert. Ich suche erst einmal nach 6 stelligen Zeichenketten.
Text suchen: #?????
Statt der genannten Archive, erhalte ich eine Fehlermeldung.
[img]http://s1.directupload.net/images/140411/wlymr8h2.jpg[/img]
Er gibt die Meldung einen Sinn? Funktioniert die Suche nicht mit Platzhaltern ? (Platzhalter für ein Zeichen "?")
Ich nutze TC 8.51 RC2 x64!
Sehe ich richtig dass du wirklich nach fünf "Platzhaltern" in Folge suchen willst?
Also wenn du wie bei Kommandozeilen-Wildcards ein beliebiges Zeichen meinst, musst du für RegEx stattdessen einen Punkt nehmen:
oder verkürzt:
Wenn du aber tatsächlich Fragezeichen nehmen wolltest müsstest du diese jeweils "escapen", also maskieren, da es eine Bedeutung als RegEx-Syntaxzeichen hat (Quantor).
Das erklärt auch die Fehlermeldung (fünf Quantoren hintereinander).
Also wenn du wie bei Kommandozeilen-Wildcards ein beliebiges Zeichen meinst, musst du für RegEx stattdessen einen Punkt nehmen:
Code: Select all
#.....
Code: Select all
#.{5}
Wenn du aber tatsächlich Fragezeichen nehmen wolltest müsstest du diese jeweils "escapen", also maskieren, da es eine Bedeutung als RegEx-Syntaxzeichen hat (Quantor).
Code: Select all
#\?\?\?\?\?
Hi,
ich suche nicht nach Platzhaltern (Wildcards) ich suche nach einer Zeichenkette.
Für mich gehören folgende Zeichen zu dem Begriff "Reg.Ausdruck": * ? ^ () [] {} + - $
* steht für eine beliebige Zeichenkette
? steht für genau ein beliebiges Zeichen
In dem Zusammenhang ist für mich ein "Leerzeichen" kein Zeichen.
Die Suche nach dem Text: #??? sollte z.B. Archive finden in denen ein Dokument die Zeichenkette #Kfz enthält
Wenn ich dich richtig verstehe steht ein "." für ein beliebiges Zeichen dazu gehört auch ein "Leerzeichen" und wenn ich nach einer Zeichenkette
suchen möchte die einen Punkt enthält muss ich "\." eingeben.
Was muss ich eingeben, wenn ich "Leerzeichen" bei der Suche ausklammern möchte?
ich suche nicht nach Platzhaltern (Wildcards) ich suche nach einer Zeichenkette.
Für mich gehören folgende Zeichen zu dem Begriff "Reg.Ausdruck": * ? ^ () [] {} + - $
* steht für eine beliebige Zeichenkette
? steht für genau ein beliebiges Zeichen
In dem Zusammenhang ist für mich ein "Leerzeichen" kein Zeichen.
Die Suche nach dem Text: #??? sollte z.B. Archive finden in denen ein Dokument die Zeichenkette #Kfz enthält
Wenn ich dich richtig verstehe steht ein "." für ein beliebiges Zeichen dazu gehört auch ein "Leerzeichen" und wenn ich nach einer Zeichenkette
suchen möchte die einen Punkt enthält muss ich "\." eingeben.
Was muss ich eingeben, wenn ich "Leerzeichen" bei der Suche ausklammern möchte?
Korrekt.phantom wrote:Für mich gehören folgende Zeichen zu dem Begriff "Reg.Ausdruck": * ? ^ () [] {} + - $
Falsch, jedenfalls in Verbindung mit RegEx. In RegEx ist der Punkt für genau ein beliebiges Zeichen verfügbar und der Punkt mit einem unmittelbar nachfolgenden Quantifier (Stern oder Plus oder Iteratoren wie {n}) für eine beliebige Zeichenkette.* steht für eine beliebige Zeichenkette
? steht für genau ein beliebiges Zeichen
Schau dir mal die TC-Hilfe zu regulären Ausdrücken genauer an, dort sind auch Beispiele zu finden.
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Die TC-Suche ist eine Wissenschaft für sich. In der TC-Hilfe zu Reg.Ex werden Begriffe verwendet die ich noch nie gehört habe.
Hier wären deutlich mehr Beispiele zu den Kombinationsmöglichkeiten zwischen Zeichenklassen, Metazeichen, Iterationen... sinnvoll.
Für mein Beispiel habe ich folgendes mal probiert: #.{3}\b
allerdings werden auch Texte mit 3 stelligen Zeichenketten aufgelistet. Das heißt doch nicht genau 3 Zeichen wie in der Hilfe ({n} Zeichen kommt genau n-mal vor).
Hier wären deutlich mehr Beispiele zu den Kombinationsmöglichkeiten zwischen Zeichenklassen, Metazeichen, Iterationen... sinnvoll.
Für mein Beispiel habe ich folgendes mal probiert: #.{3}\b
allerdings werden auch Texte mit 3 stelligen Zeichenketten aufgelistet. Das heißt doch nicht genau 3 Zeichen wie in der Hilfe ({n} Zeichen kommt genau n-mal vor).
Sorry, aber ich verstehe nicht alle Details die in der Hilfe aufgelistet sind. Mir fehlen einfach noch ein paar Beispiele.
Folgende Einstellungen scheinen die Suche zu präzisieren:
Suchen nach: *.doc
Suchen in: "Suchordner"
Archive durchsuchen: aktiviert
Text suchen: #.{6}
Reg.Ausdruck: aktiviert
Die Option ganze Wörter hilft hier nicht weiter da durch das Metazeichen "." auch Leerzeichen wie ein Buchstabe oder eine Zahl behandelt werden.
Ich habe herumexperimentiert mit Worttrennzeichen "\s", "\S" und Wortgrenze "b" funktioniert aber nicht wirklich.
Was ich suche sind Zeichenketten unterschiedlicher Länge (max. 8 Zeichen) z.B. #Kfz, #Kfz2, #Kfzab. Die Zeichenkettenlänge wird begrenzt durch ein Leerzeichen.
Wenn ich die Textsuche mit der max. Zeichenlänge 8 beginne, sollen auch nur die Dokumente aufgeführt werden die genau dieser Zeichenkettenlänge entsprechen.
Also nicht auch Dokumente die bsw. die Zeichenkette #Kfz (4 Zeichen) enthält.
Kann mir vielleicht jemand die Lösung nennen oder versagt hier die Textsuche?
Folgende Einstellungen scheinen die Suche zu präzisieren:
Suchen nach: *.doc
Suchen in: "Suchordner"
Archive durchsuchen: aktiviert
Text suchen: #.{6}
Reg.Ausdruck: aktiviert
Die Option ganze Wörter hilft hier nicht weiter da durch das Metazeichen "." auch Leerzeichen wie ein Buchstabe oder eine Zahl behandelt werden.
Ich habe herumexperimentiert mit Worttrennzeichen "\s", "\S" und Wortgrenze "b" funktioniert aber nicht wirklich.
Was ich suche sind Zeichenketten unterschiedlicher Länge (max. 8 Zeichen) z.B. #Kfz, #Kfz2, #Kfzab. Die Zeichenkettenlänge wird begrenzt durch ein Leerzeichen.
Wenn ich die Textsuche mit der max. Zeichenlänge 8 beginne, sollen auch nur die Dokumente aufgeführt werden die genau dieser Zeichenkettenlänge entsprechen.
Also nicht auch Dokumente die bsw. die Zeichenkette #Kfz (4 Zeichen) enthält.
Kann mir vielleicht jemand die Lösung nennen oder versagt hier die Textsuche?
Prüf erstmal mit dem Lister und dessen Suche (mit RegEx natürlich), ob überhaupt deine gewünschten Suchbegriffe enthalten sind. DOC-Dateien sind nämlich etwas speziell, weil sie keine normalen Textdateien sind.
MfG Dalai
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Und diese Schwierigkeiten hast du im Lister nicht?phantom wrote:Schwierigkeiten macht das Leerzeichen nach der Zeichenkette.
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Deswegen ja mein Vorschlag, es erstmal im Lister zu probieren, um den passenden/notwendigen RegEx zu ermitteln. Der Punkt steht nunmal für ein beliebiges Zeichen (alles außer Zeilenumbruch). Du musst schon die Zeichen weiter eingrenzen, wenn du Leerzeichen ausschließen willst, entweder mit Zeichenklassen (z.B. [a-z0-9]), negierten Zeichenklassen (z.B. [^\ ]) oder ähnlichen Angaben.
Mitsagst du doch, du willst ein Sharp, gefolgt von 6 beliebigen Zeichen haben. Und natürlich werden damit auch Strings gefunden, die nach den 6 beliebigen Zeichen noch weitere Zeichen haben. Also musst du weiter eingrenzen oder ausschließen: Verzicht auf den Punkt zur Angabe für beliebige Zeichen, negative Zeichenklassen und/oder Angaben darüber, was nach den 6 beliebigen Zeichen folgen kann/soll/muss.
MfG Dalai
Mit
Code: Select all
#.{6}
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Beachte aber, dass [a-z0-9] nur nach Kleinbuchstaben und Zahlen/Ziffern sucht; Großbuchstaben sind nicht dabei. Wenn die ebenfalls enthalten sein dürfen/sollen:
MfG Dalai
Code: Select all
#[A-Za-z0-9]{7}\s
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror