2016-07-13 6 views
0

だから私は、テキスト Server Version: Apache/2.4.6 (Red Hat Enterprise Linux) PHP/5.4.16 を持っており、2.4.6と5.4.16 を見つけたい(2.4または5.4.12.16)以上となどがあるかもしれませんが、私は0.12または9999.1111のいずれかが正確な数字のグループを見つけるには?

を見つけたいいけません

私の試みは、これまでに次のようになります。

/([\d{1,2}\.]{2,})/g 

また、ここでのアクションでそれを見ることができます:https://regex101.com/r/hV0hN0/1

それは動作しません。

+0

あなたはあなたの投稿にreg expを入れませんか? – epascarello

+0

['\ b \ d {1,2}(?:\。\ d +)+'](https://regex101.com/r/hV0hN0/3)を試してください。単語境界の後で1〜2桁の数字にマッチし、その後に1 +数字の後に '.'が続きます。 '\ b \ d {1,3}(?:\。\ d {1,3})+' –

+0

スラッシュ '/(?:\ /)を探してください。 .. – epascarello

答えて

1

は、それはワード境界.が先行し\bないをチェック

(?<!\.)\b(\d+(?:\.\d{1,2})+)\b(?!=\.) 

を試してみてください。その後、数字が、次に、.、1〜2桁が続きます。最後に.が続くことを確認します。

Your regex modified

+1

また、9999.1111がかかります。 –

+0

@MichałMはい、どうしてですか?私はsom要件を逃したことがありますか? – ClasG

+0

"しかし、私は.12または9999.1111のいずれかが" o.O "を見つけることを望みません。 –

0

多分 (?<!\d)\d{1,2}([\.]\d{1,2})+ いつもあなたの正規表現のものです。

0

は、この方法を試してください。

\/\K((\d{1,2}\.)+)\d{1,2} 
+0

正規表現フレーバーが指定されていないため、PCREであるかどうかはわかりません。 –

0

あなたが考える何を:これは短いとクリーンバージョンです

^\d(\.\d{1,2})+$ 

。 件一致: 2.4.6と5.4.12.16は一致しません.12と9999.1111

関連する問題