Регулярное выражение соответствует всему после новой строки

#regex

#регулярное выражение

Вопрос:

Я пытаюсь написать регулярное выражение для сопоставления хэша фиксации и файлов, связанных с этим хэшем. Смотрите пример файла ниже:

 :6585d0f0ba88767ac3b590f719596d864d73e9c1:

harmonicbalance/src/harmonicbalance/HarmonicBalanceFlowModel.cpp
harmonicbalance/src/harmonicbalance/HbFlutterModel.cpp
:8302994b565553c83a048b8905ae597349d99627:

emp/src/emp/PhasePairSingleParticleReynoldsNumber.h
emp/src/emp/TomiyamaDragCoefficientMethod.cpp
:9da194f17ec08bb20ad1be8df68b78ca137ab18a:

combustion/src/combustion/ReactingSpeciesTransportBasedModel.cpp
combustion/src/complexchemistry/TurbulentFlameClosure.cpp
:6a59f0be1e347a65e525e58742bb304639ea9bc4:

meshing/src/meshing/SurfaceMeshManipulation.cpp
physics/src/discretization/FvIndirectRegionInterfaceManager.cpp
physics/src/discretization/FvIndirectRegionInterfaceManager.h
physics/src/discretization/FvRepresentation.cpp
physics/src/discretization/FvRepresentation.h
:64b7f6d36b11b6cd94c20cad53463b7deef8c85a:

resourceclient/src/resourceclient/ResourcePool.cpp
resourceclient/src/resourceclient/ResourcePool.h
resourceclient/src/resourceclient/RestClient.cpp
resourceclient/src/resourceclient/RestClient.h
resourceclient/src/resourceclient/test/ResourcePoolTest.cpp
 

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

 ^:([A-Za-z0-9] ):[n] ([A-Za-z] /.*[.a-z])$
 

Это выражение фиксирует хэш фиксации и первый файл.

Как я могу захватить все файлы и все коммиты?

Комментарии:

1. Где вы собираетесь использовать это регулярное выражение? Какой движок регулярных выражений?

2. В инструменте интеграции данных Pentaho ETL.

3. На этом шаге используется пакет java.util.regex .

4. Попробуйте ^:(w ):s ((?:s*(?!:)[^s] ) )

Ответ №1:

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

 (?:^:([A-Za-z0-9] ):|(?!^)G)n ([A-Za-z/.-] )
 

Демонстрация регулярных выражений

G утверждает позицию в конце предыдущего совпадения или в начале строки для первого совпадения.

Комментарии:

1. Спасибо! Это работает на веб-сайтах тестирования регулярных выражений в Интернете, но не в Pentaho. Вероятно, мне нужно связаться со службой поддержки. Регулярное выражение — это здорово. Я приму ваш ответ. 🙂