gpt4 book ai didi

java - 使用 Java 正则表达式进行字符串操作

转载 作者:行者123 更新时间:2023-12-01 17:31:41 26 4
gpt4 key购买 nike

我有一个这种格式的字符串:

mydb://<user>:<password>@<host>:27017

我想使用 Java regexp 来提取 <user><password>来自 String 的字符串。最好的方法是什么?

编辑:

我希望能够在字符串的替换方法中使用此正则表达式,这样我就只剩下相关的用户和密码字符串

最佳答案

您可以使用此正则表达式(模式)

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));

输出:

User: foo, Password: bar

编辑:根据您的评论:如果您想使用字符串方法,则:

String regex = "^mydb://([^:]+):([^@]+)@[^:]+:\\d+$";
String user = str.replaceAll(regex, "$1");
String pass = str.replaceAll(regex, "$2")

关于java - 使用 Java 正则表达式进行字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10252595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com