私は正規表現を読んでいて、これはうまくいくと思っていましたが、うまくいきたくないようです。電話番号が存在する場合は、電話番号の先頭の1を削除するだけです。
そう:
def mphone = 1+555-555-5555
mphone.replace(/^1/, "")
この出力は+ 555-555-5555になりませんか?
コードに2つのエラーがあることを認識しています。最初はおそらくタイプミスです:電話番号を引用符で囲んでいないため、整数になります:1 + 555-555-5555 = -5554
また、最初のパラメーターとしてパターンを取得するStringにはreplaceFirst
メソッドがないため、replace
を使用する必要があります。これは動作します:
def mphone = "1+555-555-5555"
mphone.replaceFirst(/^1/, "")
replace
はJava JavaのStringのメソッドで、文字を別の文字に置き換えます。
assert "1+555-551-5551".replace('1', ' ') == " +555-55 -555 "
探しているのはreplaceAll
で、これは正規表現のすべての出現を置き換えるか、replaceFirst
で、最初の出現のみを置き換えます。
assert "1+555-551-5551".replaceAll(/1/, "") == "+555-55-555"
assert "1+555-551-5551".replaceFirst(/1/, "") == "+555-551-5551"
^
は、正規表現の先頭にある必要があることを意味します。
assert "1+555-551-5551".replaceAll(/^1/, "") == "+555-551-5551"
投稿したコードはほぼ正しいものでした。