我有几个RegEx在在线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我想捕捉两组人。第一个组将提取所有提交SHA1,而另一个组将提取文件名。
以下是我尝试过的表达方式:
(?:^:([A-Za-z0-9]+):|(?!^)\G)\n+([A-Za-z/.-]+)https://regex101.com/r/3IBkPz/1
^:(\w+):\s+((?:\s*(?!:)[^\s]+)+)https://regex101.com/r/oIoDvM/1
有什么想法?
发布于 2019-05-08 15:01:56
Regex Evaluation步骤不支持regex 'g‘修饰符,您的正则表达式模式必须覆盖所有文本才能匹配。
例如:以下模式与Regex计算步骤中的任何内容不匹配:
:([0-9a-f]+):\s+([^:]+) 但是,如果我将.*放在此模式的前面,并选择“启用dotall模式”:
.*:([0-9a-f]+):\s+([^:]+)它将匹配最后一次提交(sha1+文件名)。您可以尝试将.*移动到原始模式的末尾,这将为您提供第一个提交。因此,如果您想使用g修饰符检索提交的完整列表(+文件名),那么这个步骤可能不是您的解决方案。
由于字段基本上是由冒号'‘和新行分隔的,您可能可以尝试以下方法:
filenames拆分为filename (分隔符是正则表达式)。您可能需要筛选空文件名,因为分隔符只支持一个char。https://stackoverflow.com/questions/56024460
复制相似问题