[英]String manipulation using Java regexp
我有以下格式的字符串:
mydb://<user>:<password>@<host>:27017
而且我想使用Java regexp從字符串中提取<user>
和<password>
字符串。 最好的方法是什么?
編輯:
我希望能夠在String的replace方法中使用此regexp,以便只剩下相關的用戶名和密碼Strings
您可以使用此正則表達式(模式)
Pattern p = Pattern.compile("^mydb://([^:]+):([^@]+)@[^:]+:\\d+$");
然后捕獲組1和2將分別具有您的用戶名和密碼。
碼:
String str = "mydb://foo:bar@localhost:27017";
Pattern p = Pattern.compile("^mydb://([^:]+):([^@]+)@[^:]+:\\d+$");
Matcher matcher = p.matcher(str);
if (matcher.find())
System.out.println("User: " + matcher.group(1) + ", Password: "
+ matcher.group(2));
OUTPUT:
User: foo, Password: bar
編輯:根據您的評論:如果您想使用String方法然后:
String regex = "^mydb://([^:]+):([^@]+)@[^:]+:\\d+$";
String user = str.replaceAll(regex, "$1");
String pass = str.replaceAll(regex, "$2")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.