2014-09-16 2 views
0

Итак, я пытаюсь разобрать файлы с линиями, который выглядит следующим образом:Match все, кроме символа табуляции

FIB cum + coni, 3x toen, omdat, hoewel 

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

r"^FIB\t()\t()$" 

, где первый() соответствует «диплом + Кони, 3x», а второй() соответствует «Тоэн, omdat, hoewel»

сделать что-то вроде этого, я думаю, что мне нужно, чтобы соответствовать все, что это не символ табуляции или символ новой строки r в фигурных скобках, поэтому в основном мой вопрос сводится к следующему:

Используя модуль python re, какое регулярное выражение будет соответствовать всем, кроме tab и новой строки?

+1

отрицательный класс символов: '[^ \ t \ n] +' – falsetru

+0

Я пробовал это, но на самом деле он не работает – user3688448

+0

, каков ваш ожидаемый результат? –

ответ

0
^FIB\s*(.*?)(?<=\s)\s(.*)$ 

Вы можете попробовать это.Это дает требуемые группы. Посетите демонстрационный файл.

http://regex101.com/r/iO1uK1/7

0

Все, что не вкладка \t или новая строка \n является [^\t\n], поэтому ваше регулярное выражение становится:

r"^FIB\t([^\t\n]+)\t([^\t\n]+)$" 

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

Вы можете заменить \n на \r или \r\n в зависимости от вашего платформа.

Смежные вопросы