0

を含む文字列があるとします。

いくつかのコンテンツ何とか何とか何とか
さらにいくつかのランダムなコンテンツ
ParentID:ここに重要なコンテンツがあります

この文字列から "ParentID:" の値を解析するために、Ruby で正規表現を記述しようとしています。これが今あるものです。

def parseForParent(textForParsing)

  string1 = textForParsing.match(/ParentID:([^\/.]*)\n$/)

end

この問題は現在解決されているようです。以下の回答を確認してください。「ParentID」に実際に関連するテキストを制限できるように、正規表現を変更しようとしています。それを行う 1 つの方法は、区切り記号を超えるすべてのテキストを削除することです。または、それを正規表現に組み込むこともできます。

4

3 に答える 3

1

動作するので、何か変なことをしているに違いありませんが、Ruby スタイルにするためにここでいくつかの変更を加えました。

def parse_for_parent(text)
  match = text.match(/ParentID:([^\/.]*?)\n$/)

  match and match[1]
end

text = <<END
Some content blah blah blah
Some more random content
ParentID: Here goes the important content
END

parse_for_parent(text)
# => " Here goes the important content"

なお、Ruby のメソッド名はアンダースコアで定義されます。クラス名は大文字と小文字が混在しています。定数はすべて大文字です。

于 2013-09-25T17:36:22.310 に答える
0

扱っているのが BR HTML タグだけの場合は、parseForParentメソッドにフィードする前に、入力内の BR タグをプレーン テキストの改行に置き換えることで、解析を簡素化できます。

converted_text = text.gsub(/<br\s*\/?>/i, "\n")

<BR><br/>、およびを処理するのに十分な柔軟性が必要<br />です。

アップデート:

@tadman が強調しているように、解析を処理するには、本格的な HTML パーサー ( Nokogiri など) を使用する方が一般的に安全ですこのスレッドもあなたに興味があるかもしれません。

于 2013-09-25T18:40:07.177 に答える