Wie kann ich mit Google Chrome oder IE nach regulären Ausdrücken auf Webseiten suchen?


68

Wie kann ich mit Google Chrome oder IE auf Webseiten nach regulären Ausdrücken wie "foo | bar" suchen? Ich kenne die Erweiterung "Regular Expression Searcher", aber sie funktioniert bei mir nicht. (Wenn ich einen Schrägstrich drücke, passiert nichts.) Die Bewertungen im Webshop weisen darauf hin, dass dies ein häufiges Problem für viele Benutzer ist.


1
Sie verwenden Firefox nicht, aber vielleicht finden Sie eines seiner Add-Ons interessant: deeper web deeperweb.com Es führt keine REs durch, unterstützt aber eine feinere Suche. Wenn Sie wirklich verzweifelt sind, können Sie immer den Quellcode einer Webseite speichern und dann mit einem Dienstprogramm oder Editor suchen, das REs unterstützt, aber das wäre ziemlich hässlich.
Joe

Verwenden Sie möglicherweise NotePad ++ als externen Editor für Webseiten. Dort können Sie nach regulären Ausdrücken suchen.
Alfred

Antworten:


39

Verwenden Sie Javascript, um reguläre Ausdrücke zu finden

Vielleicht möchten Sie dies auf der Konsole von Chrome ausprobieren:

var p=/.*(regu).+?\ /gi; console.log( document.body.innerText.match(p) );

Öffne einfach die Konsole , kopiere und füge sie oben in die Konsole ein und drücke enter. Sie können es hier auf dieser Seite testen.
Dies kann verbessert werden, wenn es passt.

Hier drucken wir Übereinstimmungsindizes und übereinstimmenden Text auf die Konsole. Hier versuchen wir, einen Text zu finden regu, der 20 Zeichen vor (oder weniger, wenn der Zeilenanfang) und 10 Zeichen nach (oder weniger, wenn der Zeilenanfang) enthält.

var p=/.{0,20}regu[^ \n]+[^\n]{0,10}/gi;
while (m = p.exec(document.body.innerText)) { 
    console.log( 'Index: '+m.index+' Match: '+m ); }

Auch dies versucht, wird es Hintergrund malt alle Spiele auf Seite rot , rexexp ist nicht perfekt , aber zumindest sollte nicht verwirren mit HTML - Tags:

var p=/(\>{1}[^\n\<]*?)([^\n\<]{0,30}regu[^\n\<]{0,10})/gi,b=document.body;
b.innerHTML=b.innerHTML.replace(p,'$1<span style="background-color:red;">$2</span>');

Lesezeichen setzen:

Eine andere Möglichkeit, dies zu verwenden, ist das javascript:Protokoll (derselbe Code wie oben):

javascript:(function(){var p=/(\>{1}[^\n\<]*?)([^\n\<]{0,30}regu[^\n\<]{0,10})/gi,b=document.body;b.innerHTML=b.innerHTML.replace(p,'$1<span style="background-color:red;">$2</span>');})();

Zum Beispiel kann man mit Hilfe des javascript:Protokolls ein kleines Suchfeld in jede Webseite einfügen, um reguläre Ausdrücke zu suchen.
Ich denke, dass Sie bereits wissen, dass mit einfachem regulären Ausdruck auch rote Übereinstimmungen von der Seite entfernt werden können.
Wenn ich das für ein paar Stunden weiterentwickle, haben wir möglicherweise ein Such-Plugin, das in ein Lesezeichen passt :)


1
Einige frühere Versionen von Chrome unterstützen dies nicht innerText. Es wird empfohlen zu prüfen, ob innerTextunterstützt wird und standardmäßig, textContentob innerTextnicht verwendbar ist.
Spencer D

Ihr ursprünglicher Code zum Suchen von Elementen kann Code [...document.body.innerText.matchAll(p)]für die Version 73+ von Chrome sein.
Vadim Ovchinnikov

6

Suche nach regulären Ausdrücken in Google Chrome.

Ein einfaches Suchdienstprogramm, mit dem Sie eine Webseite mit regulären Ausdrücken durchsuchen können.

Features in Entwicklung

  • Zwischen den gefundenen Ergebnissen wechseln
  • verbesserte Benutzeroberfläche
  • zwischen Groß- und Kleinschreibung wechseln
  • Erstellen Sie eine Verknüpfung zum Umschalten der Erweiterung
  • Zulassen, dass beim Suchen die Eingabetaste gedrückt wird (anstatt auf die Schaltfläche "Suchen" zu klicken)

Wichtige Hinweise
Dies ist eine Seitenaktionserweiterung, die auf der bereits geöffneten Seite nicht sofort funktioniert. Ich empfehle, den Browser neu zu starten, bevor Sie diese Erweiterung verwenden. Sie können auch versuchen, Ihre geöffnete Seite zu aktualisieren.


3
Ich habe keinen besseren Vorschlag, aber diese Erweiterung funktioniert nicht sehr gut. Wenn diese Option aktiviert ist, blockiert AdBlock nicht alle Anzeigen. Nach dem Durchsuchen dieser Seite funktioniert beispielsweise das Hinzufügen eines Kommentars nicht mehr.
Dennis

3
Der Link scheint nicht verfügbar zu sein. Ist es die gleiche Erweiterung wie Chrome Regex Search ?
Ruslan



1

In Chrome Developer Tools - Modus, geben Sie ctrl+ shift+ F(unter Windows, nicht sicher über andere OS).

Es gibt eine Reg-Ex-Option für die Suche. Dadurch werden alle Dateien durchsucht, sodass auch die JavaScript-Quelle enthalten ist. Ich bin nicht sicher, wie Sie es nur auf HTML beschränken können.


1

Halten Sie in Chrome unter macOS die Taste Alt+ Command+ Igedrückt, um die Entwicklertools zu öffnen, wählen Sie den HTML-Quellcode für die Seite aus (auf der Registerkarte "Quellen"), halten Sie die Taste Command+ gedrückt, um Fzu suchen, und wählen Sie das .*Symbol (Regex).

Wenn Sie nur nach Text suchen müssen, können Sie mit pandoc HTML in einfachen Text konvertieren:

$ pandoc https://superuser.com/questions/417875 -t plain -o tmp.txt

Und dann lessmit Regex suchen (suchen mit /).


0

Nicht wirklich eine Suche, aber ich fand diesen Regexp-Textmarker (den ich irgendwo fand) ziemlich nützlich und funktioniert für alle Browser.

javascript:(function(){var%20count=0,%20text,%20regexp;text=prompt(%22Search%20regexp:%22,%20%22%22);if(text==null%20||%20text.length==0)return;try{regexp=new%20RegExp(%22(%22%20+%20text%20+%22)%22,%20%22i%22);}catch(er){alert(%22Unable%20to%20create%20regular%20expression%20using%20text%20'%22+text+%22'.\n\n%22+er);return;}function%20searchWithinNode(node,%20re){var%20pos,%20skip,%20spannode,%20middlebit,%20endbit,%20middleclone;skip=0;if(%20node.nodeType==3%20){pos=node.data.search(re);if(pos%3E=0){spannode=document.createElement(%22SPAN%22);spannode.style.backgroundColor=%22yellow%22;middlebit=node.splitText(pos);endbit=middlebit.splitText(RegExp.$1.length);middleclone=middlebit.cloneNode(true);spannode.appendChild(middleclone);middlebit.parentNode.replaceChild(spannode,middlebit);++count;skip=1;}}else%20if(%20node.nodeType==1%20&&%20node.childNodes%20&&%20node.tagName.toUpperCase()!=%22SCRIPT%22%20&&%20node.tagName.toUpperCase!=%22STYLE%22){for%20(var%20child=0;%20child%20%3C%20node.childNodes.length;%20++child){child=child+searchWithinNode(node.childNodes[child],%20re);}}return%20skip;}window.status=%22Searching%20for%20%22+regexp+%22...%22;searchWithinNode(document.body,%20regexp);window.status=%22Found%20%22+count+%22%20match%22+(count==1?%22%22:%22es%22)+%22%20for%20%22+regexp+%22.%22;})();

Alle UUencoded Zeichen erschweren das Lesen, ich fand, was scheint, die mehrzeilige Version bei stackoverflow.com/questions/9280195/…
Alok

1
Ich benutze den Regexp-Textmarker von dieser Seite und er funktioniert ziemlich gut für mich. Dpatrickcaldwell.blogspot.in/2010/09/…
Benutzer

Ich brauchte das normale (nicht bookmarklet) JS (zur Verwendung in der Chrome-Erweiterung), und die Lösung von @buffer link funktionierte
einwandfrei

Ich hätte nach unten scrollen sollen, bevor ich es selbst getan habe ... pastebin.com/VA9xvmM8
Sebi

0

Ich möchte dieses Chrome-Plugin vorschlagen .


Ich denke, Sie schlagen dies als Lösung vor, also habe ich es bearbeitet. Sie können auch einen Link angeben, ohne den vollständigen Link anzuzeigen. Sie klicken auf das Kettengliedsymbol, das angezeigt wird, wenn Sie Ihre Antwort eingeben.
Kae

-1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.