我可以使用哪种正则表达式来匹配字符串中的“,”,“。”。它可能存在于字符串中,也可能不存在。一些预期产出的例子可能是:
Test1.0,0.csv -> ('Test1', '0,0', 'csv') (Basic Example)
Test2.wma -> ('Test2', 'wma') (No Match)
Test3.1100,456.jpg -> ('Test3', '1100,456', 'jpg') (Basic with Large Number)
T.E.S.T.4.5,6.png -> ('T.E.S.T.4', '5,6', 'png') (Doesn't strip all periods)
Test5,7,8.sss -> ('Test5,7,8', 'sss') (No Match)
Test6.2,3,4.png -> ('Test6.2,3,4', 'png') (No Match, to many commas)
Test7.5,6.7,8.test -> ('Test7', '5,6', '7,8', 'test') (Double Match?)
最后一个不太重要,我只希望如此。会出现一次。我正在处理的大多数文件,我都希望能分为第一个到第四个示例,所以我对它们最感兴趣。在
谢谢你的帮助!在
您可以使用regex
\.\d+,\d+\.
来查找该模式的所有匹配项,但是您需要做一些额外的工作来获得预期的输出,特别是因为您希望将.5,6.7,8.
视为两个匹配项。在以下是一个潜在的解决方案:
示例:
^{pr2}$若要在没有匹配项时拆分文件扩展名,可以使用以下命令:
除了},这与上面的输出相同,}的行为相似。在
'Test2.wma'
变为{'Test5,7,8.sss'
和{第三个捕获组应该包含这对数字。如果你有多个这样的对,你应该得到多个匹配。第三次捕获总是包含这对。在
要允许多个连续匹配,请使用lookahead/lookbehind:
示例:
^{pr2}$我们还可以使用lookahead来执行拆分:
测试:
相关问题 更多 >
编程相关推荐