2015-03-18 4 views
0

Как найти путь и имя файла в блоке текста?Regex найти каталог в тексте

Перед тем, как пометить это как дубликат я знаю вопросы о путях к файлам существуют

Например

In file included from /some/directoy/3.33A.37.2/something else/dogs.txt, 
       from /some/directoy/something else/dogs.txt, 
       from /some/directoyr/3.33A.37.2/something else/dogs.txt, 
       from /var/log/xyz/10032008.log, 
       from /var/log/xyz/test.c:29: 
Solution: 
please the file something.h has to be alone without others include, it has to be present in release letter, 
in order to be included in /var/log/xyz/test.c and /var/log/xyz/test.h automatically 
Other Note: 
The file something.c must contain the somethinge.h and not the ecpfmbsd.h because it doesn't contain C operative code.. everything good.. 

являются следующие идеальные матчи:

/some/directoy/3.33A.37.2/something else/dogs.txt 
/some/directoy/something else/dogs.txt 
/some/directoyr/3.33A.37.2/something else/dogs.txt 
/var/log/xyz/10032008.log 
/var/log/xyz/test.c:29 (this is a tricky one, ok with out it) 
/var/log/xyz/test.c 
/var/log/xyz/test.h 

Идя далее, что если я найти ответ как можно Я меняю его на работу с \ вместо / каталогов

ответ

2

Вы можете использовать регулярные выражения, как это:

\/.*\.[\w:]+ 

Working demo

enter image description here

Btw, если вы хотите, чтобы слеш пути вы можете иметь:

[\\\/].*\.[\w:]+ 
+0

Вы быстро вносите изменения. – Whitecat

+1

@Whitecat lol, мне нравится регулярное выражение и поиск шаблонов –

+0

У этого есть проблема, если у меня есть этот 'something /var/log/xyz/10032008.log lude, он должен присутствовать в письме о выпуске, чтобы быть включенным в /var/log/xyz/test.c:54546 автоматически ' – Whitecat

1

Это выглядит как работа:

\/[^,:]*\.\w+

См. demo.

Вы можете настроить его, если знаете точные расширения, их длину и символы, которые у них есть. Что касается меня, то \w+ будет делать, чтобы соответствовать расширениям.

+0

Nice Мне это нравится. Он выполняет как '\ /'. Я разбираю «большие данные», я не знаю никаких расширений. Я надеюсь сделать это как можно более общим. – Whitecat

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