Я пытаюсь получить значение в кавычках для конкретной строки
Например, для ключа IsEmployee мне нужно получить значение «Да».
id: '1234', Заработная плата: '200000', Год: '2018', IsEmployee: 'Да'
может ли кто-нибудь поделиться любым образцом регулярного выражения для этого
нет. Это просто нить.
Хорошо, а что насчет \bIsEmployee:'([^']+)'?
Что ты пробовал? Разместите код / регулярное выражение и объясните, что он возвращает, и что вы ожидаете от него.




Вроде формат JSON, правда, в виде строки. Используйте парсер JSON для большей гибкости, чтобы получить любое значение по ключам или распечатать все
Это просто строка. Не json
Попробуй это
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexpApp {
public static void main(String[] args){
String val = "id:'1234',Salary:'200000',Year:'2018',IsEmployee:'Yes'";
System.out.println(getValue(val, "id"));
System.out.println(getValue(val, "Year"));
System.out.println(getValue(val, "IsEmployee"));
}
public static String getValue(String testStr, String key){
Pattern p = Pattern.compile("\\b"+key+"[ ]*:[ ]*'(.+?)'");
Matcher m = p.matcher(testStr);
return m.find() ? m.group(1): null;
}
}
Вы можете использовать следующее регулярное выражение:
(?i)(?<=isemployee:')[^']*
Объяснение:
(?i) - делает регулярное выражение нечувствительным к регистру(?<=isemployee:') - положительный просмотр назад, чтобы найти должность, которому только что предшествует isemployee:'[^']* - соответствует 0+ вхождений любого символа, кроме '. Короче говоря, он соответствует всему, пока следующий ' не будет найден в строкеКод: ВЫХОД.
import java.util.*;
import java.lang.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Rextester
{
public static void main(String args[])
{
final String regex = "(?i)(?<=isemployee:')[^']*";
final String string = "id:'1234',Salary:'200000',Year:'2018',IsEmployee:'Yes'";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Это файл JSON?