簡體   English   中英

使用Java正則表達式進行字符串操作

[英]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.

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