正規表現を、プラス記号で始まり、任意の桁数を含む文字列と一致させる必要があります。
それらは一致する必要があります
+35423452354554
or
3423564564
これはうまくいくはずです
\+?\d+
+
行頭のオプションとその後の数字に一致します
編集:
OPの明確化の要求の時点で:3423kk55は最初の部分(3423)であるため一致します。文字列全体に一致させるには、代わりにこれを使用します。
^\+?\d+$
次のようになります。
\+?\d+
は\+
リテラルのプラス記号を?
意味し、 は前のグループ (プラス記号) が 0 回または 1 回表示さ\d
れることを意味し、数字文字を示し、最後+
は前のグループ (数字) が 1 回以上表示される必要があります。
編集:正規表現を使用する場合、検索と一致には違いがあることに注意してください(少なくとも Java では、ほとんどの正規表現の実装には同様のメソッドがあります)。findは所有している文字列のどこかで部分文字列を見つけ、matchesは文字列全体をパターンと照合しようとしますが、前後に余分な文字がある場合は失敗します。^
正しい方法を使用していることを確認し、行の先頭を強制する a と行$
の終わりを強制する a を追加できることを覚えておいてください(全体が^\+?\d+$
.
単純^\+?\d+$
開始行、次に 1 または 0 の正符号、その後に少なくとも 1 桁の数字、最後に lnie
Perl の正規表現は次のようになります。\+?\d+