正则表达式Java差异

时间:2012-03-28 13:53:32

标签: java regex

我需要使用reqex验证密码。我已经写了一个并在这个检查器中测试它,它的工作原理: http://www.nvcc.edu/home/drodgers/ceu/resources/test_regexp.asp

但是当我将它添加到我的Java应用程序时,它失败了。

正则表达式中的正则表达式:(\ D +)(\ d +)(\ D +)(。*)

java中的正则表达式:(\\ D +)(\\ d +)(\\ D +)(。*)

测试字符串:1Hello2

这传入了在线检查程序但在Java中失败。

有谁知道为什么?

我希望正则表达式匹配任何中间有数字的密码(也可以在开头和结尾都有它们)。

我需要2个单独的正则表达式:一个匹配中间的数字(pass1word或1pass1word或1pass1word),还有一个匹配开头或结尾的数字的正则表达式(1password或password1 NOT pass1word1,因为它在字符串类别中)

1 个答案:

答案 0 :(得分:2)

你的正则表达式要求:

  1. 不是数字(1次或更多次)\ D +
  2. 1位或更多位
  3. 一个或多个非数字\ D +
  4. 任何字符0次或以上。
  5. 您的示例包含

    1. 1位数
    2. 5个非数字
    3. 1位数
    4. 我认为很明显它与正则表达式不匹配:第一个元素\ D +失败,因为数字出现在开头。