0

Ruby on Rails で別のファイルのコンテンツを取得するアプリを構築しています。文字列コンテンツを区切るための一意の区切り記号を作成する簡単な方法があるかどうか、または別のアプローチが必要かどうか疑問に思います。

テキストの段落があり、引き込みたいとしましょう。テキストに何が含まれるかわからないとしましょう。

私がやりたいのは、段落内の 5 つのランダムなポイントにある種の区切り記号を配置して、後でその区切り記号までのコンテンツを個々の要素に分離できる配列を作成できるようにすることです。

ちょっとした文脈のために、段落が文字列として取り込まれているとしましょう:

Hello, this is a paragraph of text which will be delimited. Goodbye.

さて、次のように、さまざまなポイントに区切り記号を追加するとします (コードでこれを行う方法を知っています)。

Hello, this [DELIMITER] is a paragraph [DELIMITER] of text which [DELIMITER] will [DELIMITER] be delimitted. Goodbye.

繰り返しますが、これを行う方法は知っていますが、上記を使用して次のように配列を作成できるとしましょう。

my_array = ["Hello, this", "is a paragraph", "of text which", "will", "be delimitted. Goodbye"

上記のすべてを達成する自信があります。私が抱えている課題は、区切り文字はどうあるべきか?

通常、コンマは区切り文字として使用されますが、テキストに既にコンマが含まれていると、発生させたくない区切りになります。たとえば、上記の例では、"Hello" と "this" の間のコンマにより、"Hello, this" 要素が "Hello" と "this" に分割されてしまいますが、これは私が望むものではありません。

考えたのは、乱数 (16 進数) ジェネレーターを使用して、ページが読み込まれるたびに新しい区切り文字を作成することです。たとえば、「こんにちは、この 023ABCDEF は段落 023ABCDEF です...」などですが、これが正しいアプローチ。

もっと簡単な解決策はありますか?

4

1 に答える 1

1

マルチパート MIME メッセージは (多かれ少なかれ) GUID セパレーターのアプローチを取ります。それは十分です。

ただし、これは別の種類の問題であり、テキスト エディターがテキストの太字斜体などのセクションをマークすることに近いと考えています。これは、文字列の解析 (Markdown のような、SO の書式設定) またはデータ構造を介して処理できます。

テキスト エディターのアプローチは一般的により柔軟で、文字列の単純なコレクションの代わりに、セクションに関するメタデータ (タイプ、フォーマットなど) を保持する構造のコレクション (またはツリー) を使用します。

最適なアプローチは、ニーズによって異なります。

  • セクションは入れ子にできますか?
  • これはレンダリングされますか?
  • もしそうなら、セクションの「タイプ」には特定のレンダリングが必要ですか?
  • セクションの「タイプ」はありますか、それともすべて同じですか?
  • 問題のテキストは、セクショニングの前、最中、または後に編集されますか?
  • 等。
于 2012-09-09T17:52:01.987 に答える