2017-11-08 11 views
-5

私は、ジャバ関数がツイートを処理するための正規表現文字列パターンを見つけようとしています。多くの洗浄の後、今の私のデータの形式は次のとおりです。「つぶやき、デバイス、つぶやき、デバイスが...」2つの正規表現マッチの間の文字列を取得

例のデータフォーマットは、以下のように

RTする@ blah1です:blahbla、いくつかのデバイス1 RT @ blah2:blabla、いくつかのDEV2する@ blah3: blahblah;いくつかDEV3

問題:

私は間の文字列を取得したい "RTする@ blah1を:" と ";いくつかのデバイス" を反復。

ありがとうございます。

答えて

0

Stringクラスは、文字列を操作するさまざまな方法を提供します。 この場合、split() - メソッドを使用できます。 split by;次のように分割します。

0
public static void main(String[] args) { 
    String s = "RT @blah1: blahbla;some device1 RT @blah2: blabla;some dev2 @blah3: blahblah;some dev3"; 

    for (String part : s.split(";")) { 
     if (part.contains(":")) { 
      System.out.println(part.split(":")[1]); 
     } 
    } 
} 

split()をいくつかの正規表現で置き換えることができます。

0

私は上記の答えに同意します。つまり、まずstring.split()を使用してください。

あなたはREGEXを使用して主張する場合、次のようにします。

(?:^[^@][email protected][^:]+:\s)([^;]+) 

例:https://regex101.com/r/cOmKhU/1

説明:

  • (:?^ [^ @] + @ [^: ] +:\ s) - >非キャプチャグループ、非@ 1つ以上、非@:1つ以上、空白1つ以上の行の先頭から開始
  • ([^;] +) - > caグループ、すべての文字(次の文字まで:)を除く:
関連する問題