Скажем, у меня есть:Regexp извлечь имя класса из файла пути
D:\workspace\src\com\package\MYCLASS.java
Как написать регулярное выражение для извлечения только «MyClass»?
Скажем, у меня есть:Regexp извлечь имя класса из файла пути
D:\workspace\src\com\package\MYCLASS.java
Как написать регулярное выражение для извлечения только «MyClass»?
Если язык, на котором вы работаете с поддерживающими файлами, использует его. Как os.path.split*
в Python.
Регулярное выражение может быть ([\w-]+)\.
\\([^\\]+)\.java
должен сделать это, хотя вам может понадобиться возиться с захватом - прямо сейчас он будет соответствовать чему-либо между \ и .java.
Обратите внимание, что вам нужно извлечь захваченную группу (индекс 0).
Если язык, на котором вы используете опоры lookarounds, (?<=\\)[^\\]+(?=\.java)
также будет соответствовать без с использованием захватов.
это прекрасно, но я использую ANT, а lookarounds не поддерживается. – facewindu
Правильно, тогда первое, вероятно, лучшее, что вы получите. – brandonscript
Вы можете попробовать это:
PATTERN
(?<=\\)[^\s\\]+?(?=\.java)
ВХОД
D:\workspace\src\com\package\MYCLASS.java
OUTPUT
MYCLASS
показать нам код – dognose
Любой конкретный язык программирования? – Artur
@Artur это имеет значение? Думаю, ему просто нужен шаблон регулярного выражения. – Tafari