簡體   English   中英

如何使用正則表達式查找密碼

[英]How to find passwords with regex

在任何情況下,密碼都由數字和拉丁字母組成; 密碼總是后跟“密碼”字(在任何情況下),但它們可以用任意數量的空格和冒號分隔:字符。

我試試這個正則表達式

Pattern pattern = Pattern.compile("password\\s\\w*",Pattern.CASE_INSENSITIVE);

如果文本是

    String text = "My email javacoder@gmail.com with password    SECRET115. Here is my old PASSWORD: PASS111.\n";//scanner.nextLine();

我們需要找到 SECRET115 和 PASS111。 現在程序失敗並且找不到模式。

您可以在password之后添加一個可選的: ,並將 0 個或多個空格與\s*匹配:

password:?\s*(\w+)

請參閱正則表達式演示

細節

  • password - 固定字符串
  • :? - 1 或 0 個冒號
  • \s* - 0+ 個空格
  • (\w+) - 捕獲組 1:一個或多個單詞字符。

Java 演示

String s = "My email javacoder@gmail.com with password    SECRET115. Here is my old PASSWORD: PASS111.\n";
Pattern pattern = Pattern.compile("password:?\\s*(\\w+)", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
    System.out.println(matcher.group(1)); 
} 

Output:

SECRET115
PASS111

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM