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