「23.0 32.0」のような文字列に一致させようとしています。ここに私の正規表現があります:RegExワイルドカードが一致していない
hrs_pnt_regex = /\s{2,}-?\d{1,2}\.\d(\s+|$)/
コード:
x = " 23.0 32.0"
x.to_enum(:scan, hrs_pnt_regex).map { Regexp.last_match }
結果:私は気づく何
MatchData " 23.0 " 1:" "
は\ sの+が終わり括弧で動作するようには思えないということです。 "\ s \ s"に変更すると、そのように両方の数字が一致します。それ以外の場合は、最初のものだけを取得します。
<MatchData " 23.0 " 1:" ">, <MatchData " 32.0" 1:"">
+その後?
と一致します。その場合には
xx.y
にまねの番号を、マッチさせたいのですか?それは奇妙なことのように思えます。 – tadman文字列に正規表現をグローバルに適用したいときに、すべてのMatchDataオブジェクトを取得する方法としてこれが見つかりました。それ以外の場合は、文字列の開始位置を与えるオブジェクトがない文字列と一致する文字列を返します。 –
'/ g'フラグで' match'を実行すると、すべての一致が得られます。 – tadman