2017-10-16 22 views
-1

ウェブサイトのエントリに含まれるメールアドレスを抽出しようとしています(CSVにエクスポートしています)。このページは、400を超えるアドレスを含むエントリが1つのWeb要素にグループ化され、データを自動的にスクレイプできないようにコード化されています。アドレスは、単一のエントリごとに2つの同一の文字列の間に表示されます。文字列間の文字列を抽出する

など。

"午後4時から午後9時まで、12345 Main St、Seattle、WA、友達を招待!

+1

1.これらの文字列( '1つのエントリごとに2つの同一の文字列の間にアドレスが表示されます) 2.既に何か試しましたか? – user2887596

+0

1.例? 2.何が済んだか(コード)? 3.あなたは何の問題を抱えていましたか? – 0andriy

+0

はい、私はRegExでこれを行う式を導き出すのに数時間を費やしました。私は今朝必要としたものを手に入れようとかなりの時間を費やしましたが、HTML、RegEx、Javaの知識はきわめて限られています。 – user8786729

答えて

0

これを実現するには、正規表現を使用できます。あなたはそれを行うために使用するプログラム言語に関する詳細を提供しなかったので、私は正規表現部分だけをカバーします(そして、あなたの好みの言語でそれを行う方法のいくつかの研究を行うことができます - ほとんどすべての言語が正規表現)。

、文字列に

てみましょう "12345 MAIN ST、シアトル、WAは、友人を持参、午後9時まで午後4時!"希望する文字列の一部を抽出するために、正規表現を使用して

/^4pm to 9pm, ([A-Za-z0-9, ]+), Bring friends\!$/ 
は、あなたのニーズに出席するために微調整することができ

は(あなたが唯一の文字列の1つのサンプルを提供他のサンプルが影響を与えることができ結果)。 regex101.com

UPDATEでそれを試してみてください:あなたは文字クラス(アドレスに表示できる文字)を修正する必要があり

/pm\n([A-Za-z0-9, ]+)\nInstructors/ 

:コメントに基づいて

、次のような正規表現を使用することができます。私はregex101.comでテストしましたが、あなたがコメントで提供した例のために働いていました。

+0

私は実際の文字列にトランスポーズしようとしましたが、動作しませんでした。実際のエントリーを切り取ったものです: "10/12/2017木曜日午後4時から9時までnEagle Home Mortgage、1110 College St SE Ste C Lacey \ nInstructors:Kirk D.、Lacey \ nサラ、Weichert Realtor - Olympia \ nご注意:ご予約の際には、homebuyerclasswa @に電話またはEメールでお問い合わせください。 ** "pm \ n"と "\ nInstructors"の間のアドレスはすべて** – user8786729

+0

です。 noobを助けてくれてありがとう。 :) – user8786729

+0

最後の1つ:「pm \ n」と「\ nInstructors」を破棄するように式を微調整することはできますか?今は、アドレスと隣接する文字列を抽出しています。 – user8786729