2010-11-27 11 views
0

次のリンクを分割することは可能ですか? リンクを選択できますが、リンクがすぐ隣に貼り付けられている場合は選択できません。regex find links

ありがとう

例: http://www.fileserve.com/file/7kXswvM/part1.rarhttp://www.fileserve.com/file/r4F3Gmh/part2.rarhttp://www.fileserve.com/file/r4F3Gmh/part3.rar

+1

あなたはどのような環境にしたいですか? C#、perl、テキストエディタ? –

+1

答えを特定の言語やツールに限定したい場合は、 'regex'タグが言語やツールタグを使用するようにアドバイスしてください。私はそれを十分に強く語っていないのですか、あるいは特定のタグの抜粋だけを見ていないのでしょうか?おそらく、人々がタグを含むときに、タグの抜粋をポスターに表示するように変更する必要がありますか? – tchrist

+0

@tchrist:[人は読んでいません。](http://www.joelonsoftware.com/uibook/chapters/fog0000000062.html)ジョエルはとてもそう言います。 –

答えて

3

あなたはhttp://で分割でき、再プリペンドすべてのリンクに(それだけですべてのhttpだと仮定して)ことを(私は別に、これらの3つのリンクを選択します)。

+0

+1はちょうど同じことを述べるつもりでした – Philar

0

一致http:// -sと分割。 specによれば、URLの別の部分には表示されません。

1
http://(?:(?!http://).)* 

http://の次の発生または文字列のいずれかの端までhttp://で始まる文字列にマッチします。

>>> re.findall(r'http://(?:(?!http://).)*', 'http://www.fileserve.com/file/7kXswvM/part1.rarhttp://www.fileserve.com/file/r4F3Gmh/part2.rarhttp://www.fileserve.com/file/r4F3Gmh/part3.rar') 
['http://www.fileserve.com/file/7kXswvM/part1.rar', 
'http://www.fileserve.com/file/r4F3Gmh/part2.rar', 
'http://www.fileserve.com/file/r4F3Gmh/part3.rar'] 

入力時にリンク以外のものが続く場合、これはもちろん機能しません。別の方法として、次の正規表現は、次のhttp://までまたは次のスペース(または文字列の末尾)まで一致します。

http://(?:(?!http://|\s).)*