2017-03-29 20 views
3

この単純な正規表現が何にもマッチしない理由を理解できません。それは常に失敗し、例外をスローします:正規表現がKotlinで一致しない

val match = Regex("""\d+""").matchEntire("A123B")?: throw Exception("Regex fail") 
+2

文字列全体を '\ d +'にマッチさせたいが、あなたの 'A123B'は数字だけではない。 –

+1

これらの文字列を完全に一致させる必要があり、英数字で構成されている場合は、 '\ p {Alnum} + 'パターンを使用することができます。大文字と数字だけが許されている場合は、 '[A-Z0-9] +'を使います。 –

答えて

3

あなたはmatchEntireで入力全体を一致させたいと\d+パターン:

fun matchEntire(input: CharSequence): MatchResult? (source)
試みは、パターンに対する全入力されたCharSequenceを一致させます。
戻り値入力全体が一致する場合はMatchResultのインスタンス、一致しない場合はnullを返します。

ただし、A123Bは数字で構成されているだけではありません。部分一致が必要な場合は、findを使用してください。

関連する問題