[英]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:一個或多個單詞字符。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.