Я пытаюсь разделить данные ниже:
Input:abc=def,jkl,nm=ghi
Output:
abc=def,jkl
nm=ghi
Итак, в основном я хочу разделить пару значений ключа с помощью запятой ... но если значение содержит запятую, следует учитывать последнее вхождение запятой.
Пробовал regex = "(.*),"
но он дает мне результат как
nm=ghi
Пробуем и другие комбинации.
Здесь я хочу использовать регулярное выражение только для определенных требований.
Мне удалось решить указанную выше проблему, используя приведенный ниже код:
//get data between two equals
String test2= abc=def,jkl,nm=ghi
String[] testVals=test2.split("(?=,\\w+=)(,)");
Now the issue is with below data:
Input:abc=def123,nm=ghi-ghy,jkl,egrh=878787,kjasd:1:1=908@0982
and i am getting output as:
abc=def123
nm=ghi-ghy,jkl
egrh=878787,kjasd:1:1=908@0982
Expected output:
abc=def123
nm=ghi-ghy,jkl
egrh=878787
kjasd:1:1=908@0982
Есть ли конкретная причина использовать регулярное выражение, а не, скажем, input.split (",")?
@SayaliDingankar Проверьте повторяющийся вопрос, я добавил новый ответ с более простым регулярным выражением, используя ваш ввод в качестве примера.




Я действительно думаю, что вам следует вернуться к тому, кто вас просил сделать это, и попросить их настроить его по-другому, поскольку это станет причиной многих проблем, которых можно легко избежать.