Google ChromeまたはIEを使用してWebページ内で正規表現を検索するにはどうすればよいですか?


69

Google ChromeまたはIEを使用してWebページで「foo | bar」などの正規表現を検索するにはどうすればよいですか?「正規表現サーチャー」拡張機能は知っていますが、機能しません。(スラッシュを押しても何も起こりません。)Webストアのレビューは、これが多くのユーザーに共通の問題であることを示しています。


1
Firefoxを使用していませんが、アドオンの1つに興味があるかもしれません。より深いWeb deeperweb.com REを実行しませんが、より詳細な検索を支援します。本当に必死なら、常にWebページのソースを保存してから、REをサポートするユーティリティまたはエディターで検索することができますが、それはかなりugいことです。
ジョー

Webページの外部エディターとしてNotePad ++を使用することもできます。そこで正規表現を検索できます。
アルフレッド

回答:


39

Javascriptを使用して正規表現を照合する

たぶん、Chromeのコンソールでこれを試してみてください:

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

ただ、オープンコンソール、コンソールとヒットするコピーして、上記のペーストenter。このページでテストできます。
適合すれば改善できます。

ここでは、一致するインデックスと一致したテキストをコンソールに出力します。ここではregu、前の20文字(行の先頭の場合はそれ以下)と後の10文字(またはeolの場合はそれ以下)を含むテキストを一致させようとします。

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

また、これを試してください、それはページのすべての一致の背景で塗りつぶします、rexexpは完璧ではありませんが、少なくともHTMLタグを混乱させるべきはありません:

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>');

これをブックマークする:

これを使用する別の方法は、javascript:プロトコルを使用することです(上記と同じコード):

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>');})();

たとえば、javascript:プロトコルを使用すると、正規表現を検索するための任意のWebページに小さな検索ボックスを挿入できます。
単純な正規表現を使用して、ページから赤い一致を削除できることは既にご存知だと思います。
さらに数時間これを開発し続けると、ブックマークに収まる検索プラグインがあるかもしれません:)


1
いくつかの以前のバージョンのChromeはをサポートしていませんinnerTextinnerTextサポートされているかどうかを確認し、デフォルトでは使用できないtextContent場合を確認することをお勧めしますinnerText
スペンサーD

要素を見つけるための初期コードは[...document.body.innerText.matchAll(p)]、Chromeの73以上のバージョン用のコードを使用できます。
ワディムオフチンニコフ

6

Google Chromeからの正規表現検索

正規表現を使用してWebページを検索できる単純な検索ユーティリティ。

開発中の機能

  • 見つかった結果を切り替える
  • UIの改善
  • 大文字と小文字の区別を切り替える
  • 拡張機能を切り替えるためのショートカットを作成する
  • (検索ボタンをクリックする代わりに)検索時に「Enter」キーを押すことを許可します

重要な注意事項
これはページアクション拡張機能であるため、既に開いているページではすぐには機能しません。この拡張機能の使用を開始する前に、ブラウザを再起動することをお勧めします。開いたページを更新することもできます。


3
より良い提案はありませんが、この拡張機能はうまく機能しません。有効にすると、AdBlockはすべての広告をブロックしません。また、このページを検索した後、たとえば、コメント追加が機能しなくなります。
デニス

3
リンクは利用できないようです。Chrome Regex Searchと同じ拡張子ですか?
ルスラン



1

Chrome開発者ツールモードで、ctrl+ shift+ と入力Fします(Windowsでは、他のOSについては不明です)。

検索用の正規表現オプションがあります。これによりすべてのファイルが検索されるため、JavaScriptソースが含まれます。(どうやって)HTMLだけに制限できるのかわかりません。


1

MacOSの上のChromeで、ホールドAlt+ Command+ I、開発者ツールを開き、ページのHTMLソースコードを選択するために、(「ソース」タブの下)、ホールドCommand+ F検索し、選択するために、.*(正規表現)のシンボルを。

テキストのみを検索する必要がある場合は、pandocを使用してHTMLをプレーンテキストに変換できます。

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

次にless、正規表現を使用した検索に使用します(検索/)。


0

実際には検索ではありませんが、この正規表現ハイライター(どこかで見つけた)は非常に便利で、すべてのブラウザーで機能することがわかりました。

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;})();

UUencodeされたすべての文字は読みにくく、stackoverflow.com
questions / 9280195 /

1
私はこのサイトの正規表現ハイライターを
使用

私は、通常の(ブックマークレットではない)JS(Chromeの拡張機能で使用するために)必要に応じて、@bufferリンクからソリューションはうまく働いた
Evgeniy Dolzhenko

私はそれをやった前に私が...自分自身をスクロールダウンしている必要がありpastebin.com/VA9xvmM8
SEBI

0

この Chromeプラグインを提案したいと思います。


これを解決策として提案していると思うので、編集しました。また、完全なリンクを表示せずにリンクを提供できます。答えを入力するときに表示されるチェーンリンクアイコンをクリックします。
KAE

-1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.