2011-12-29 8 views
10

を除くすべての文字がこれは私の文字列です:50.00.00..00.00正規表現の最後の1

私は誰かがこれで私を助けることができる50000000.00

で終わる置き換え後のように、私は、最後の1を除くすべての.をマッチさせたいです?

+3

現在使用している正規表現パターンを投稿できますか? – user1231231412

答えて

22
\.(?=.*\.) 

それ以下、別のドット((?=.*\.))が存在しなければならないドット(\.)を、一致します。

+0

ありがとうございました!私は先読みでそんなに試していましたが、それを働かせることはできませんでした。乾杯! – malamili

+0

JavaScriptでうまく動作します。あなたは正規表現を説明することができます[ここ](http://rick.measham.id.au/paste/explain.pl?regex=%5C.%28%3F%3D.*%5C.%29) – mayrs

+0

細かい動作Javaでも。 – Gautam

2

だから、あなたが指定されていなかった、あなたの正規表現ツール、エンジン、(これは正規表現エンジンがlookahead、例えばPCREやPythonなどサポートを前提とし)さてあなたは、例えばでこれを行うことができますsed(そこの2桁が最後dot後に常にあり、最後dotが常に存在している場合のみ動作):

echo "50.00.00..00.00" | sed 's/\.//;s/\(..\)$/.\1/' 

しかし、他のいくつかの方法があり、例えばlookahead regex(サポートされている場合)。

HTH

+0

はい、私はそれを言及すべきでした、私はJavaを使用しています。ケニーの答えは私のために働いた。とにかく、ありがとう! – malamili