2017-08-05 23 views
-2

私は正規表現のnoobですので、今日この問題に苦しんでいます。私はそれらにURLでいくつかのコンテンツを持っています。私はこれらのURLを抽出するだけですが、URLの最後まで選択するのは難しいです。文字までの正規表現OR空白OR行末

は、私はここのコードサンプルを持っている:あなたはそれを正しく選択していない見ることができ、そして最後のURLが全く選択されていないとして https://regex101.com/r/2GfzWO/1

。ひどい:/

は、誰もが正しい方向に私を操縦することができれば、私は本当に感謝して

アップデート:私はここにも正規表現を追加しようと思いました

だけでは上記のリンクに依存しないように。ここでは、この問題のためにオリジナルの正規表現は次のとおりです。ここで

/(?:http|ftp)s?:\/\/\S*\.\S*(?="|<)/gi

は、私がテストしていたコンテンツである。この場合

Here is some content and url <p>http://www.something.com/index.html</p> 
<p>Some more content <a href="http://www.something.com/some/path/here.html">http://www.something.com/some/path/here.html</a></p> 
Some more text http://www.something.com/something/somethingelse.html content 
continued... 

答えて

1

、あなたは怠惰な試合ではなく、貪欲なものを必要とします。 '?'を追加するとあなたの正規表現の2番目の '*'のすぐ隣に、それは動作します。私は肯定先読みにいくつかのより多くの選択肢を追加することによって、それを解決することができたよう

+0

ありがとう@XihuaDuan私は一歩近づいています。私はまた、 '?'最初の '*'の横にあるので、アンカータグのURLをよく選択できました。 コンテンツの最後のURLを選択できません。どのように私はそれを行うことができますか? https://regex101.com/r/2GfzWO/2 –

+0

正解先読み(「OR

0

はルックス:

(?:http|ftp)s?:\/\/\S*?\.\S*?(?="|<| |\n|\r|$)

だから、改行/キャリッジリターン\ n個の\ rをまたは終了のを検出します文字列$

関連する問題