0

String.sub を使用しようとしています! ルビーで、それはあまりにも多くを置き換えます。

私が使用している正規表現。一致しすぎていることがわかります: http://rubular.com/r/IUav4KEFWH

<rb>.+<\/rb>

最初から最後まで選択し、最初のペアを選択するだけです。私が認識していないサブの別のバージョン、またはサブへのより良い方法はありますか

複数行を無効にして別の行に配置するのは簡単ですが、複数行を犠牲にしたくありません

4

3 に答える 3

1

あなたの正規表現は貪欲すぎます:

<rb>.+<\/rb>

以下を使用して非貪欲にします。

<rb>.+?<\/rb>

Rubular デモ

于 2014-09-14T07:26:33.347 に答える
1

最初のタグから最後のタグ<rb>まで一致します。これは貪欲な演算子であるため、可能な限り一致し、正規表現の残りの部分が一致することを意味します。</rb>+

+?「1つ以上—できればできるだけ少ない」という意味の貪欲でない一致に使用します。

<rb>.+?</rb>

注:正規表現を使用するよりも、HTML から抽出するパーサーをお勧めします。

于 2014-09-14T07:27:44.347 に答える