2

Javaのテキスト投稿で短縮URLを見つける必要があります。次の正規表現があります"(http://(bit \ .ly | t \ .co | lnkd \ .in | tcrn \ .ch)。*?)\ s"

2つの質問があります

  1. 上記の式の問題は、行末にある場合、短縮URLと一致しないことです。exテキスト「blahhttp //linkd.in/R9Msf3 blah」の場合、「http://linkd.in/R9Msf3」

    しかし、何とか何とかhttp://linkd.in/R9Msf3は「http://linkd.in/R9Msf3」を与えません

    両方のパターンを一致させる方法について何か提案はありますか?基本的に、テキストから短縮URLを置き換える必要があります。

  2. また、すべての短縮URL形式を取得するためのより良い方法はありますか?ハードコーディングすると、毎回新しい形式を構成に追加する必要があります。

4

2 に答える 2

2

空白の一致を避けるために.*使用する代わりに。\S*は必要ありません。代わりに、URLの終わりと空白または文字列の終わりとの間の境界を一致させるために?使用できます。\b\s

(http://(bit\.ly|t\.co|lnkd\.in|tcrn\.ch)\S*)\b
于 2012-10-09T00:08:57.287 に答える
0

(\s|$)正規表現の最後に試してください

それで http://(linkd\.in|t\.co|bitly\.co|tcrn\.ch).*?(\s|$)

RegexPalでテスト済み

ここに画像の説明を入力してください

于 2012-10-08T22:49:33.633 に答える