Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式,如何在Java中使用正则表达式获得特定子字符串的等价值_Java_Regex - Fatal编程技术网

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答案仍然有效