Java正则表达式,如何在Java中使用正则表达式获得特定子字符串的等价值
我有以下字符串:Java正则表达式,如何在Java中使用正则表达式获得特定子字符串的等价值,java,regex,Java,Regex,我有以下字符串: mydata ="\nmyName=ram\nmySalaryL=$2,256.00\n"; 如何使用regex获取我的姓名和薪资值?尝试使用regex捕获组。它们放在括号中,让您可以访问匹配的子字符串。 合理的正则表达式可能是: java.util.regex.Pattern regex = Pattern.compile("\nmyName=(\w+)\nmySalayL=$((\d{1,3},)*(\d{1,3})\.\d{2}))\n"); java.util.re
mydata ="\nmyName=ram\nmySalaryL=$2,256.00\n";
如何使用regex获取我的姓名和薪资值?尝试使用regex捕获组。它们放在括号中,让您可以访问匹配的子字符串。 合理的正则表达式可能是:
java.util.regex.Pattern regex = Pattern.compile("\nmyName=(\w+)\nmySalayL=$((\d{1,3},)*(\d{1,3})\.\d{2}))\n");
java.util.regex.Matcher match = regex.matcher(inputString);
if(match.matches()) {
String myName = match.group(1);
String mySalary = match.group(2);
}
请注意,捕获组0是整个字符串,在访问捕获组之前需要调用matches(),因为它进行实际的正则表达式匹配 根本不需要使用正则表达式!只需按
\n
字符拆分,然后按=
拆分即可获得这些信息:
String mydata ="\nmyName=ram\nmySalaryL=$2,256.00\n";
String[] arr = mydata.split("\n");
System.out.println(arr[1].split("=")[1]);
System.out.println(arr[2].split("=")[1]);
欢迎加入,到目前为止你试过什么了吗?当您尊重上的规则时,您将看到人们非常友好:实际上我只共享了mydata的一个实例,但是mydata是varchar(10000),这将增加复杂性。所以我在尝试正则表达式。@tejram答案仍然有效