在 Kotlin 中匹配数字、字符和 < 的正则表达式

nol*_*man 3 regex kotlin

我需要解析一些护照和身份证,其中包含字符串,例如

val text = "P<GBRSTONE<<SARAH<<<<<<<<<<<<<<<<<<<<<<<<<<<\n" +
                    "0689349234GBR3708248F1601013<<<<<<<<<<<<<<06"
Run Code Online (Sandbox Code Playgroud)

(是的,两行),我需要首先验证文本,因为它只能包含大写字母、数字<和换行符。

我正在使用https://regexr.com/并且尝试过诸如但当[A-Z0-9<{\n}"]我尝试使用fun Mrz.validChars(): Regex = Regex("/[A-Z0-9<{\n}]")always returns验证我的文本时的表达式false

提前致谢!

Wik*_*żew 5

您可以使用

val text = "P<GBRSTONE<<SARAH<<<<<<<<<<<<<<<<<<<<<<<<<<<\n" +
                "0689349234GBR3708248F1601013<<<<<<<<<<<<<<06"
println("[A-Z0-9<\n]+".toRegex().matches(text))
Run Code Online (Sandbox Code Playgroud)

查看在线演示

[A-Z0-9<\n]+模式匹配一​​个或多个出现的 ASCII 大写字母、数字<或换行符,并matches()确保整个字符串匹配(即它不能包含任何其他字符)。