如何断言包含至少一个数字的字符串?

Posted

技术标签:

【中文标题】如何断言包含至少一个数字的字符串?【英文标题】:how to assert a string which contains atleast one number? 【发布时间】:2022-01-13 12:54:04 【问题描述】:

我想检查我的实际值是否有任何数字或字符串。我如何断言它?

public class Regex 

@Test
public static void m1() 
    
        String str = "12ABC";
        // System.out.println(str.matches("\\d.*")); // true
        // System.out.println(str.matches("[0-9].*")); // true
        Assert.assertEquals(str.matches("\\d.*"), "str");
    


【问题讨论】:

【参考方案1】:

要断言字符串有一个或多个数字,请使用:

@Test
public static void m1() 
    String str = "12ABC";
    Assert.assertTrue(str.matches(".*\\d.*"));

请注意,String#matches API 的本质是将模式应用于整个字符串。所以.*\d.* 是我们想要的模式。

【讨论】:

但在进行更改后我仍然收到以下错误 Assert.assertEquals(str.matches(".*\d.*"), "str"); [RemoteTestNG] 检测到 TestNG 版本 7.4.0 FAILED: m1 java.lang.AssertionError: expected [str] but found [true] at org.testng.Assert.fail(Assert.java:99) 能否请你写代码并帮助我 您没有在我的回答中使用代码。您仍在使用旧代码。 嗨,蒂姆,我对代码非常陌生,如果可以,请编写代码,我不知道在哪里进行更改以及如何进行更改。 请尝试我更新的答案。

以上是关于如何断言包含至少一个数字的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是至少包含一个数字、字母和既不是数字也不是字母的字符?

包含至少 8 个字符和至少 1 个非字母数字字符的密码的正则表达式

C++ 检查字符串是不是包含至少 1 个数字和 1 个字母

用java自动生成口令由数字、大小写字母及特殊字符,且至少包含其中两种字符

需要一个包含至少一个数字、零个或多个字母、没有空格、最小/最大的正则表达式

csharp 如果给定字符串包含至少一个数字,则返回true。