Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。4,825件0全文検索用にユーザー様がキーワードをGoogle検索のように、1つや、複数入力した場合、各キーワードを分割する方法を探しています。ダブルクォーテーションで括られている文字列は中にスペースやタブなどの特殊文字が入っていても一つの文字列として扱う。"と間にスペースがないので連続した文字列と判断。-"おはよう"』の3つになります。←わざと最後のダブルクォーテーションを外してあります。実行以前の問題で、eclipsで記述文字列が正しくないエラーで赤く指摘状態になります。(恐らく\を追加したりしてエスケープ処理をしないといけないのですが、\を/や"の前にいくつ追加しても、文字列が正しくないというエラーで赤く指摘状態になります。入れたところ、eclipsで赤文字で、文字列エラーがなくなりました。"]");}但し、正規表現が悪いようで、下記の様に分割できませんでした。個の銅バッジコードを記載する際はコードを選択し、{}のボタンを押すことでコードブロックが作成されます。できそうな気もしますが。9:195冒頭に「半角及び全角スペースで区切られた」と書かれていますが、一方で分割条件に「半角スペース区切り」とあり、全角スペースをどう扱いたいのかが不明確であると感じました。P"が一つの文字列になりそうに思えたのですが、なぜそうならないのかも考えつきませんでした。P"])ならば、正規表現でも実現できますよということで。従えばこの結果になるはずです。\」以外の文字\+一文字"から「"または文字列末」までをひとかたまりと考えて、最長一致(正規表現のデフォルト)でそのかたまりの連続を抜き出す、というものです。お時間が取れるようでしたら、是非お試しください。(少し前に書いたコードですが、「動作が違う」と言われたらどこを直すのか、かなり悩んでしまいそうです。この辺の処理はわかりやすさ優先にした方が良いかもしれません。たいしたことはやっていないんですが、あちこちに\\\\なんて出てくると非常に読みづらくなってしまいます。\+一文字を特別視する必要なかったですね、という。さん、重ねてのご指摘を受けてようやく今気がつきました。Java表現と元の文字列そのものを行ったり来たりしているうちに(元文字列としての)\"の処理が必須であるかのように感じてしまっていました。一度正規表現と格闘する元気はないので、スッキリさせた回答のご提示はお任せしたいと思います。|2正規表現だと難しそうですね。}}こうやって使って下さい。"][abc][時間123-"門`限"]["やぶるな]UPDATE1プログラムの意図としては以下のようなものです。半角スペース、全角スペース、ダブルクォーテーションで区切る。左から右へ文字列を走査して区切る。ある文字で区切ったら、次に同じ文字が出てくるまで区切らない。例)半角スペースで区切ったら、次に半角スペースが現れるところまで一つの文字列にする。文字列の終わりまで走査して、同じ区切り文字が出てこなくても、一つの文字列とする。ダブルコーテーションは結果の文字列の入れる。\"やぶるな";でプログラムを実行すると次のような結果になります。個の銅バッジご回答ありがとうございます。はい、意図した仕様通りの結果です(スペース区切り、但し、ダブルクォーテーションで括られている場合はダブルクォーテーションも含めて連続した一つの文字列とする)。今から、実装し、各種パターンで確認致します。お手数をお掛け致しました。ありがとうございました。Tokenizer(moto);」、「next」、「hasNext」が、呼び出し側で、未定義エラーとなる問題で詰まっていますが、何とかしてみます。11:39回答にプログラムの意図を追加しました。javaコードのほうは、ぱっと書いた感じなのでクリティカルなプログラムに入れるようでしたら、しっかりと精査してくださいませ。c"は、一つの文字でつながっています(間のスペースは、ダブルクォーテーションで括られているので一つの文字列です)。d'OOさんの回答から\の処理を抜いたものです。")");対処法はあります。似たケースクォートを考慮して文字列を分割したい、という需要は多いですから、検索すると色々と出て来ます。https://stackoverflow.com/a/7804472/4368502https://stackoverflow.com/a/3366634/4368502クォート位置でも分割される、という点で今回とは少し違いますが参考にして下さい。Google検索の動作にはこれらの方が近そうです。したら正規表現より簡潔になるかも、と思い書いてみましたが、そんな分けは無くやはり長くなってしまいました。解り易く拡張性を持たせて書けばもっと長くなりそうです。長いのが悪いとも思いませんが、これ位であれば、やはり正規表現を使ってよいのではないでしょうか。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。前のenスペースにヒットする正規表現0英単語のアルファベットの間に半角スペースをいれたい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。