Aleshka, посмотри у нас книги по регулярным выражениям:
https://club.shelek.ru/viewfiles.php?id=45Составление регулярных выражений ничем от программирования не отличается.
Для выделения текста оберни нужное место круглыми скобками.
Полезно, по возможности, использовать привязку к началу строки - "^".
Первая задача примитивна, НО - только если все тестируемые строки будут в каком же формате. В общем то, ко второй строке это тоже относится.
1.
Используй "
.*" для "любое число любых символов".
Находи кавычку - "
"".
Далее находи "любой текст, кроме кавычки" - "
[^"]*".
Потом опять кавычка.
остальной текст можно проигнорировать, если он в дальнейшем не нужет.
2.
Это типичная для *nix строка лога. Формат можно узнать из мануалов - он фиксированный.
Ищем слово из трех букв - "
[[:alpha:]]{3}". С некоторой натяжкой можно использовать "
\w{3}".
Далее один пробел - " " или "
\s" - последний вариант универсальнее, т.к. "\s" ловит любой "пробельный символ".
Далее одна или две цифры - "
\d{1,2}".
Пробел.
Название хоста - буквы, цифры, подчеркивание, минус - "
[-\w]+". Минус в классе символов должен стоять в начале - иначе он означает диапазон.
Пробел.
Имя процесса. Т.к. оно оканчивается здесь двоеточием, то ищем все, кроме двоеточия: "
[^:]+".
Пробел.
Спецсимволы, чтобы они интерпретировались как обычные символы, надо предварять бекслешом - "\". Соотв., для прямоугольной скобки - "
\[".
Далее - все, кроме закрывающейся прямоугольной скобки - "
[^\]]+".
Закрывающаяся скобка - "
\]".
Все остальное можно проигнорировать.
Хотя первый вариант почти ничем не отличается от второго, я их решил по разному. Вообще, решить эти задачи можно множеством способов и выбирать их стоит под конкретную задачу.