• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列を抽出したい)

文字列を抽出するプログラム

このQ&Aのポイント
  • 文字列を抽出する方法について教えてください。
  • プログラムを組んで文字列を抽出する方法を教えてください。
  • Javaの正規表現を使用して文字列を抽出する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

正規表現には「最長一致の原則」というのがあって、 与えられた文字列のうちで、パターンに一致する文字列を、 最初に出てきて最も長くなるように選びます。 このパターンの場合、 「空白の後に/が最初にあるところから、最後に空白があるところまで」 を選び出します。 質問には、  /xxx_serv/file_02.jsp HTTP/1.1 まで出てしまうと書いていますが、実際にはその次の200も含めて /xxx_serv/file_02.jsp HTTP/1.1 200 となっているようです。これは、最後の空白までマッチしたからです。 パターンのところを Pattern objPtn=Pattern.compile(" /[^ ]*",Pattern.CASE_INSENSITIVE); としてみてください。 " /[^ ]*" は、「空白の後に/が来て、次に空白が出てくる直前まで」マッチするパターンです。 またその下のwhile繰り返しはいらないと思います。 >Pattern objPtn=Pattern.compile(" /[^ ]*",Pattern.CASE_INSENSITIVE); >Matcher objMch=objPtn.matcher(strVar); >objMch.find(); >objSb.append(objMch.group());

その他の回答 (1)

  • ma-chan45
  • ベストアンサー率31% (46/145)
回答No.1

”HTTP”って文字列が出てきたら、その前までで抜き出しをやめる・・・・ とかいうのじゃダメですか?

関連するQ&A