当前位置: 首页 > 面试题库 >

无效的转义序列\ d

郎永福
2023-03-14
问题内容

我正在尝试检查密码是否至少包含一个小写字母,一个大写字母,一位数字和一个特殊字符。

我正在尝试:

if(!password.matches("(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])")){
        username = "Error";
    }

但给我一个错误的说法:无效的转义序列。

有人可以帮助我解决问题,并且可以确认这是正确的模式吗?

谢谢,\\ d不要执行错误,但是与Paul%88之类的字符串不匹配,为什么?


问题答案:

Java将\字符串内部视为开始转义序列。确保使用\\代替(以便\在字符串中获得实际的字符)并且应该没问题。

快速更新 :正如Etienne所指出的,如果您实际上想要\在RegEx本身中使用a
\\\\,则需要使用,因为它将\\在字符串中产生,而该字符串将\在RegEx中产生。

新问题更新:
您提到您的RegEx不起作用,我很确定那是因为这是错误的。如果只想确保每种类型的字符类都存在,则可能只想为每个类创建一个RegEx,然后针对每个字符检查密码。密码几乎可以保证很短(而且您实际上可以自己控制),因此性能影响应该最小。



 类似资料:
  • 问题内容: 我想过滤掉所有单词,这些单词包含1个数字和3个大写字母,总长度为4。在这里查看我的示例: http //gskinner.com/RegExr/?32taa ArrayList result = new ArrayList (); for(int i = 0; i <= 10; i++){ } 但是,当我将我的regexp模式传递给matcher方法时,出现错误: 我需要换一封信吗?

  • 我编写了一个regex来匹配下面的字符串类型,当我在regex matcher中联机检查它时,它正像预期的那样工作- 当我在lua块中使用这个来匹配字符串时,它会给我带来无效的转义序列错误。我转义了双引号,并试图用\转义regex中的特殊字符,但问题仍然存在。任何指针都有帮助。谢了!

  • 无效的转义序列(有效的转义序列是\b\t\n\f\r\“\'\\)

  • 问题内容: 我在Java中有一个正则表达式问题。 当我尝试使用此正则表达式时: 我收到以下错误 我不知道该如何处理该错误。我已经尝试过将反斜杠加倍,但没有成功。我希望有人可以帮助我。 谢谢 问题答案: 这应该工作 原因是错误消息中列出的符号具有特殊含义,但不是已定义的要使用的特殊符号之一,这意味着您必须对其进行转义(在符号前添加一个多余的符号)。

  • 我尝试用Java编写regex来匹配URL。我在互联网上找到了regex,它在在线regex编辑器中工作得很好。当我试图在eclipse上运行它时,它会给出以下错误:无效的转义序列(有效的转义序列是\B\T\N\F\R\\“\'\\) 我怎样才能解决这个问题?