Java Regex, Как получить эквивалентное значение конкретной подстроки с помощью регулярных выражений в Java - PullRequest
0 голосов
/ 18 марта 2019

У меня есть следующая строка:

mydata ="\nmyName=ram\nmySalaryL=$2,256.00\n";

Как получить значения моего имени и зарплаты с помощью регулярных выражений?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Нет необходимости использовать регулярные выражения вообще!Достаточно разделить на \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]);
0 голосов
/ 18 марта 2019

Попробуйте использовать Regex Capture Groups.Они помещены в круглые скобки и дают вам доступ к соответствующей подстроке.https://docs.oracle.com/javase/tutorial/essential/regex/groups.html

Разумное регулярное выражение может быть следующим:

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 - это вся строка, и matchs () должен быть вызван перед доступом к группам захвата, посколькуэто делает фактическое сопоставление регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...