当前位置: 首页 > 知识库问答 >
问题:

如何匹配字符串中任意位置的非单词字符?

苏雅珺
2023-03-14

这是一个简单的问题,但请听我说完--Java家庭作业的一部分有一个密码验证器方法。要求是简单的-密码必须在6-10个字符之间,必须只由数字或字母,并必须有至少2个数字在它是有效的。我使用if语句并使用regex实现了这一点,出于某种原因,我无法使非单词字符regex匹配,尽管每个在线regex检查器都显示这应该是有效的,甚至用于regex检查的jetbrains插件也显示这应该是有效的。(我也明白这可以用一行程序来完成,没有if语句,但这种方式对我来说更简单。

下面的方法代码:

public static void passswordCheck(String password)
    {
        if(password.length()<6 || password.length()>10)
        {
            System.out.printf("Password needs to be between 6 and 10 characters");
        }
        else if(password.matches("\\W")) \\This should match when input is MyPass123#
        {
            System.out.printf("Password must consist only of letters and digits");
        }
        else if(!password.matches("/(\\d).*(\\d)/"))
        {
            System.out.printf("Password needs to have at least 2 digits");
        }
        else
        {
            System.out.printf("Password is valid");
        }
    }

共有1个答案

卫鸿朗
2023-03-14

只有字符串包含一个非字母数字字符(=[^a-za-z0-9_])时才进行匹配。

如果您想要任何至少包含一个非字母数字字符的字符串:.*?\w.*

 类似资料:
  • 我有这些线。我希望有一个正则表达式来匹配它们,并在将它们传递给preg_match函数时返回true。 如何在正则表达式中创建与上述模式匹配的模式?像这样: 星号(*)表示任何单词。这是我目前掌握的正则表达式模式: 格式在单词上不匹配。如何在单词上匹配字符串?

  • 问题内容: 我正在处理长度为25的DNA序列(请参见下面的示例)。我有一个230,000的列表,需要查找整个基因组中的每个序列(弓形虫寄生虫)。我不确定基因组有多大,但是比230,000个序列长得多。 我需要查找25个字符的每个序列,例如()。 基因组被格式化为连续字符串,即() 我不在乎它在哪里或被发现多少次,无论它是否存在。 我认为这很简单- 但是我也要找到一个在任何位置(只有一个位置)被定义

  • 我有这样一个字符串: “#影响@John@Me Lorem ipsum door sit amet,奉献给精英们,让他们暂时参与劳动和生活。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,还必须因工作原因而受到伤害 我需要以两种方式“拆分”,删除第一个单词,因为它以“#”开头(我可以做/已经做过),第二个我想不出来-我需要从字符串

  • 问题内容: 解析一个字符串命令数组,我需要知道一个字符串是否包含特定的关键字。 我知道听起来很简单,但是问题出在命令关键字也可能是另一个单词的一部分时。 例如: 因此,我需要检查当前行是否具有CHECKSOUND,SOUND或CHECK命令。 如果我使用类似: 然后它可能会在之前找到,因此无法正确解析。 问题 : 有没有一种方法可以只查找整个单词(如SOUND)的出现,而忽略出现的SOUND(如果

  • 问题内容: 我正在查询以获取具有特定标题的文档的URI。我的查询是: 的值实际在哪里,因为查询字符串是通过以下方式生成的: 通过上面的查询,我仅获得标题与完全相同的文档。想象一下,是由多个词组成的。我想获得文档,即使文档标题上仅出现一个字形(例如)。我该怎么办? 问题答案: 假设您有一些数据(在Turtle中): 然后,您可以使用类似以下的查询: 得到像 这样做特别整洁的是,由于您正在动态生成模式

  • 问题内容: 我想用php代替完整的单词 示例:如果我有 我用 新文本应如下所示 新hello1您好,Helloz PHP返回 NEW hello1 hello,NEWz 谢谢。 问题答案: 您要使用正则表达式。该单词边界匹配。 如果包含UTF-8文本,则必须添加Unicode修饰符“ u”,以便不会将非拉丁字符误解为单词边界: