java - 如何将 java 中的模式与下面字符串的断言 J 进行匹配

标签 java selenium assert

我有一个这样的字符串

String xyz ="JAVAxxxxxxxxxxxxxx   ID: 123678   VERSION: 3"

我想知道如何验证它是否符合特定模式。

我是这样断言的

assertThat(xyz).containsPattern("[A-Za-z]* ID: [0-9]* VERSION: [0-9]* ");

最佳答案

为了构建 stevecross 的答案,请注意,建议的表达式非常宽松。例如,它将匹配:

String xyz =" ID: VERSION: "

如果需要,您可以更加严格地匹配。比如说,如果你需要确保非空白单词,请使用 + 而不是 *,如下所示:

assertThat(xyz).matches("[A-Za-z]+ +ID: [0-9]+ +VERSION: [0-9]+");

如果您需要在键值对之间恰好有三个空格,请将 {3} 添加到仅包含空格的字符类 ([ ]) ,像这样:

assertThat(xyz).matches("[A-Za-z]*[ ]{3}ID: [0-9]*[ ]{3}VERSION: [0-9]*");

我发现在线正则表达式评估器很有帮助。例如,请参阅此:https://regex101.com/

关于java - 如何将 java 中的模式与下面字符串的断言 J 进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52079749/

相关文章:

abap - ABAP 中的断言

nunit - 即使十进制数字正确,断言也会失败

java - 锻造覆盖主菜单

java - null 是一个对象吗?

java - 在Java中的Collections对象中声明类型参数两次

java - 正确使用 Guava 两种类型的谓词

testing - 同时运行多个 Selenium 测试

ios - 如何点击ios设备键盘上的搜索键来使用selenium自动化web应用程序?

selenium - 无法使用带有docker-compose的Selenium RemoteWebDriver运行Springboot应用程序

.net - 使 .NET 断言在发布版本中抛出异常