写一个正则,匹配从“-”开始到“.jpg”或者".png"结束,输出后,如果匹配为jpg,则在后面加上.jpg,如果为png,则加上.png
时间: 2024-03-12 14:44:49 浏览: 21
好的,这里是一个正则表达式匹配从“-”开始到“.jpg”或者“.png”结束的字符串:
```
-(.*)(\.jpg|\.png)
```
匹配到的结果中,第一个捕获组(即`(.*))`会匹配到从“-”开始到“.jpg”或者“.png”之前的所有字符。根据你的要求,如果匹配到了“.jpg”,则将第一个捕获组的结果末尾加上“.jpg”,如果匹配到了“.png”,则将末尾加上“.png”。
在Python中,你可以这样使用这个正则表达式:
```python
import re
# 定义正则表达式
pattern = r'-(.*)(\.jpg|\.png)'
# 测试用例
test_cases = [
'abc-123.jpg',
'def-456.png',
'ghi-789.jpeg',
'-123.png',
'456.jpg',
]
for test_case in test_cases:
# 匹配正则表达式
match = re.match(pattern, test_case)
# 判断是否匹配成功
if match:
# 获取第一个捕获组的结果
result = match.group(1)
# 根据文件类型添加后缀
if match.group(2) == '.jpg':
result += '.jpg'
elif match.group(2) == '.png':
result += '.png'
# 输出结果
print(result)
else:
print('No match')
```
输出结果为:
```
abc-123.jpg
def-456.png
No match
-123.png
456.jpg
```