我有以下文件名应该通过正则表达式
6505208533_95d2834be5_b@2x.jpg
6505208533_95d2834be5_b~ipad.jpg
6505208533_95d2834be5_b~ipad@2x.jpg
6505218557_8407260688_b@2x.png
6505218557_8407260688_b~ipad.png
6505218557_8407260688_b~ipad@2x.png
6505237749_b71c648be2_b@2x.jpg
6505237749_b71c648be2_b~ipad.jpg
6505237749_b71c648be2_b~ipad@2x.jpg
以下正则表达式应捕获所有文件名后缀:~ipad @ 2x,@ 2x和~ipad。
(.+)(@2x|~ipad|~ipad@2x)\.(?:jpg|png)
但是,它不会捕获~ipad@2x
。怎么解决?
答案 0 :(得分:2)
答案 1 :(得分:0)
更好,更语义正确的解决方案是简单地更改后缀的顺序,因为在搜索中从未到达组合后缀“~ip2 @ 2x”,因为它是另外两个始终匹配的组合:< / p>
(.+?)(~ipad@2x|@2x|~ipad)\.(?:jpg|png)