0

必要なときに正確に解析する必要のあるデータと一致する正規表現パターンがあります。残念ながら、splitメソッドでは、必要なデータが削除され、ガベージが私に渡されます。通常、私は反対のことをする別の正規表現を試してみますが、それは思ったほど単純ではありません。このセクションははるかに大きなプログラム/パッケージの一部であるため、Javaである必要があります。

パターンp=Pattern.compile( "/ ^ \ {\?| \:| \ = | \ ||(\-configurationFile)|(isUsingRESTDescription)|(\ restURL)=(\ s | \ w|\。|\ -| \:| \ / | \; | \ [| \] | \'| \}) \ r / g ");

これは私が解析している文字列です(各セクションの後にキャリッジリターンがあります):

  • SearchResult :: getBleh():{BLEHID = BLEH blehLastmoddate = 1-Jul-11 bleh = BLEH; Beh description = blehbleh BlEh = bleh1231bleh bLeH = bleh-blehbleh 1 media = http://bleh.com/13 Date = 22-May-12 name = []} String [] items = p.split(input ^);

上記は私が望むものの反対を私に与えます。

あなたは誰かがこの問題を抱えていたと思うでしょう。助けていただければ幸いです:)。

4

1 に答える 1

3

キャプチャ グループを使用します。それらについては、 Patternの javadoc で読むことができます。

例:

  Pattern p = Pattern.compile("[^/]*/([^/]*)/.*");
  Matcher m = p.matcher("foo/bar/input");
  if (m.find()) {
     String captured = m.group(1); // This equals "bar"
     String matched = m.group(0); // This equals "foo/bar/input"
  }

a の括弧内にあるものPatternはすべてキャプチャ グループです。はMatcher、開始括弧が検出されたタイミングに基づいて、キャプチャ グループにインデックスを付けます。グループ 0 は、常に一致した領域全体です。

于 2012-07-11T21:35:57.060 に答える