2

Android の Sipdroid には、正規表現を使用する検索と置換の方法があります。すべての発信通話に00XXの形式の国コードがあることを確認するためにそれを使用しようとしています

また、国番号がない場合は、番号の前に 0045 を付けたいと考えています。

最初のものは解決しましたが、2番目のことを行う方法がわかりません。

検索:

\A(((\+)(\d{2})?)|(00(\d{2})?)|)((\d|\s)+)\Z

置換:

00$4$6$7

テスト文字列「12345678」、「+4512345678」、「004512345678」を使用して、 http://www.regexplanet.com/simple/index.htmlを使用してテストしています。これらはすべて「004512345678」を返すはずです。

4

1 に答える 1

3

国コードの長さは 3 桁または 4 桁である可能性があることに注意してください。

詳細については、国の電話番号のリストを参照してください。

あなたが求めている置換は非常に文脈依存であるため、単一の正規表現で解決することはできないと思います(実際に使用できるようにするのに十分簡単な方法で)。繰り返しますが、私は正規表現の第一人者ではありません。

于 2010-03-21T16:19:05.780 に答える