Возврат только части шаблона Regex kotlin - PullRequest
0 голосов
/ 08 января 2020

Скажем, у меня есть программа, которая ищет текстовый файл на основе пользовательского ввода с использованием регулярных выражений, и я хочу, чтобы в результате появилось только несколько строк большей строки.

Я пробовал несколько методов, но он либо возвращает всю строку, либо ничего не возвращает.

Вот код:

 fun getWaterMeterReadingList(viewRecordMain: ViewRecordMain, block: String, floor: String, unit: String,date:String):ArrayAdapter<String> {

    var fileName = viewRecordMain.filesDir.absolutePath + "/UnitJson.json"

    val inputStream: InputStream = File(fileName).inputStream()

    // Read the text from buffferReader and store in String variable
    val inputString = inputStream.bufferedReader().use { it.readText() }

    var regex = Regex("\"Block\":\"("+block+")\",\"Floor\":("+floor+"),\"ID\":("+unit+"),\"Reading\":\"(\\S+)\",\"date\":\"("+date+")\",\"path\":\"(\\S+)\"", RegexOption.MULTILINE)
    var result = regex.findAll(inputString).map{ result -> result.value }.toList()

    var adapter = ArrayAdapter<String>(viewRecordMain, R.layout.listview, result)

    return adapter
}

Этот шаблон возвращает:

"Block": "A », "Этаж": 1, "ID": 1, "Чтение": "123123,42", "дата": "2020.01.07", "путь": "/ хранение / Эмуляция / 0 / Фотографии / 1578377524095.jpg"

То, что я действительно хочу, чтобы оно вернулось:

Блок: A, Этаж: 1, ID: 1, Чтение: 123123.42, дата: 2020.01.07

или что-то более понятное или более простое и понятное для людей, чтобы понять. Хотелось бы знать, любая помощь будет высоко ценится.

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