как выбрать текст из файла - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть текстовый файл, как:

"GET /opacial/index.php?op=results&catalog=1&view=1&language=el&numhits=10&query=\xce\x95\xce\xbb\xce\xbb\xce\xac\xce\xb4 \ xce \ XB1% 20 -% 20 \ xce \ x95 \ xce \ XB8 \ xce \ XBD \ xce \ xb9 \ xce \ Xba \ xce \ XAD \ XCF \ x82% 20 \ XCF \ x83 \ XCF \ x87 \ xce \ XAD \ XCF \ x83 \ xce \ XB5 \ xce \ xb9 \ XCF \ x82% 20
-% 20 \ xce \ x99 \ XCF \ x83 \ XCF \ x84 \ xce \ XBF \ XCF \ x81 \ xce \ XAF \ xce \ XB1
& search_field = 11 & страница = 1

И я хочу вырезать все символы после слова «запрос» и перед «& поиск». (жирный шрифт выше). Я пытаюсь вырезать данные, используя шаблоны, но что-то не так. Можете ли вы привести пример кода выше?

EDIT: Другая проблема, кроме описанной выше, заключается в том, что средство сравнения используется только для charSequence, и у меня есть файл, который не может быть преобразован в charSequence ...: \

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

что-то в этом роде:

   String yourNewText=yourOldText.split("query")[1].split("&search")[0];

?

, чтобы узнать, как прочитать файл в String, вы можете посмотреть здесь (есть разные) * Каковы возможности 1009 *

0 голосов
/ 19 сентября 2011
".*query\\=(.*)\\&search_field.*"

Это регулярное выражение должно работать, чтобы дать вам захват того, что вы хотите удалить Тогда String.replace должен добиться цели.

Редактировать - ответ на комментарий. Следующий код ...

    String s = "GET /opacial/index.php?op=results&catalog=1&view=1&language=el&numhits=10&query=\\xce\\x95\\xce\\xbb\\xce\\xbb\\xce\\xac\\xce\\xb4\\xce\\xb1%20--%20\\xce\\x95\\xce\\xb8\\xce\\xbd\\xce\\xb9\\xce\\xba\\xce\\xad\\xcf\\x82%20\\xcf\\x83\\xcf\\x87\\xce\\xad\\xcf\\x83\\xce\\xb5\\xce\\xb9\\xcf\\x82%20 --%20\\xce\\x99\\xcf\\x83\\xcf\\x84\\xce\\xbf\\xcf\\x81\\xce\\xaf\\xce\\xb1&search_field=11&page=1";
    Pattern p = Pattern.compile(".*query\\=(.*)\\&search_field.*");
    Matcher m = p.matcher(s);
    if (m.matches()){
        String betweenQueryAndSearch = m.group(1);
        System.out.println(betweenQueryAndSearch);
    }

Произвел следующий вывод ....

\xce\x95\xce\xbb\xce\xbb\xce\xac\xce\xb4\xce\xb1%20--%20\xce\x95\xce\xb8\xce\xbd\xce\xb9\xce\xba\xce\xad\xcf\x82%20\xcf\x83\xcf\x87\xce\xad\xcf\x83\xce\xb5\xce\xb9\xcf\x82%20 --%20\xce\x99\xcf\x83\xcf\x84\xce\xbf\xcf\x81\xce\xaf\xce\xb1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...