2013-11-28 6 views
-4

Скажем, у меня есть:Regexp извлечь имя класса из файла пути

D:\workspace\src\com\package\MYCLASS.java 

Как написать регулярное выражение для извлечения только «MyClass»?

+0

показать нам код – dognose

+1

Любой конкретный язык программирования? – Artur

+1

@Artur это имеет значение? Думаю, ему просто нужен шаблон регулярного выражения. – Tafari

ответ

1

Если язык, на котором вы работаете с поддерживающими файлами, использует его. Как os.path.split* в Python.

Регулярное выражение может быть ([\w-]+)\.

0

\\([^\\]+)\.java должен сделать это, хотя вам может понадобиться возиться с захватом - прямо сейчас он будет соответствовать чему-либо между \ и .java.

Обратите внимание, что вам нужно извлечь захваченную группу (индекс 0).

Если язык, на котором вы используете опоры lookarounds, (?<=\\)[^\\]+(?=\.java) также будет соответствовать без с использованием захватов.

+0

это прекрасно, но я использую ANT, а lookarounds не поддерживается. – facewindu

+0

Правильно, тогда первое, вероятно, лучшее, что вы получите. – brandonscript

1

Вы можете попробовать это:

PATTERN

(?<=\\)[^\s\\]+?(?=\.java) 

ВХОД

D:\workspace\src\com\package\MYCLASS.java 

OUTPUT

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