2017-03-23 12 views
1
PrintWriter sentimentText = new PrintWriter("C:\\Users\\markc\\OneDrive\\Documents\\NetBeansProjects\\TwitterTest\\src\\text\\sentimentText.txt"); 
     Pattern linkPattern = Pattern.compile("https\\S*"); 
     Pattern linkPattern2 = Pattern.compile("@\\S*"); 
     for (int i = 0; i < tweetsArray.size(); i++) { 

      sentimentText.println(linkPattern.matcher(tweets.get(i).getText()).replaceAll("")); 
      sentimentText.println(linkPattern2.matcher(tweets.get(i).getText()).replaceAll("")); 

     } 
     sentimentText.close(); 

"@"で始まる単語と "https"で始まる単語を含むテキストファイルがあります。これらの単語を削除するためにパターンを使用しました。パターンのうちの1つだけを使用すると、それ自体は機能しますが、両方を一緒に使用すると効果はありません。2つのパターンを統合する

どのようにパターンを共に整数化することができますか?

+1

最初の呼び出しで返された文字列を 'replaceAll(" ")'に代入する必要があります。その文字列を2番目のパターンにマッチさせ、 'replaceAll(" ")'を呼び出します。メソッドreplaceAll(...)はそれを呼び出す文字列インスタンスを変更せず、Java文字列が不変であるため新しい文字列を返します。 –

+0

'Pattern.compile("(https | @)\\ S * ")' –

+1

これはうまくいきました、ありがとう! –

答えて

0

あなたは|または

(https|@)\\S*試合httpsまたは@のいずれかの文字

\\S*を使用して、グループにあなたの正規表現を組み合わせること(https|@)\\S*を使用することができます。試合はゼロまたはそれ以上の非空白文字

はそうPattern.compile("(https|@)\\S*")を使用します

関連する問題