回答編集履歴
4
説明変更(うまく説明できないので)
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
ドットの次で一致して webpが挿入され、挿入された文字列
|
1
|
+
ドットの次で一致して webpが挿入され、挿入された文字列で再び webp が挿入されているようですね。
|
2
2
|
正規表現を [^.]+$ にすれば1回置換されるだけで済みます。
|
3
3
|
ただし、ファイルの先頭がドットで始まる場合もあるので、os.path.splitextやpathlib.Path を使った方がいいと思います。
|
4
4
|
|
3
説明追記
test
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
ドットの次で一致して webpが挿入され、挿入された文字列の後ろで再び一致するので webp がもう一度挿入されます。
|
1
|
-
|
2
|
+
正規表現を [^.]+$ にすれば1回置換されるだけで済みます。
|
2
|
-
ファイルの先頭がドットで始まる場合もあるので、os.path.splitextやpathlib.Path を使った方がいいと思います。
|
3
|
+
ただし、ファイルの先頭がドットで始まる場合もあるので、os.path.splitextやpathlib.Path を使った方がいいと思います。
|
3
4
|
|
4
5
|
```py
|
5
6
|
import re
|
@@ -7,12 +8,12 @@
|
|
7
8
|
import pathlib
|
8
9
|
|
9
10
|
name = 'hoge.jpg'
|
10
|
-
print(re.sub('
|
11
|
+
print(re.sub('[^.]+$', 'webp', name));
|
11
12
|
print(os.path.splitext(name)[0] + '.webp')
|
12
13
|
print(pathlib.Path(name).stem + '.webp')
|
13
14
|
|
14
15
|
name = '.profile'
|
15
|
-
print(re.sub('
|
16
|
+
print(re.sub('[^.]+$', 'webp', name));
|
16
17
|
print(os.path.splitext(name)[0] + '.webp')
|
17
18
|
print(pathlib.Path(name).stem + '.webp')
|
18
19
|
```
|
2
内容変更
test
CHANGED
@@ -1,13 +1,28 @@
|
|
1
1
|
ドットを含めるといいですよ。
|
2
|
-
|
2
|
+
ファイルの先頭がドットで始まる場合もあるので、os.path.splitextやpathlib.Path を使った方がいいと思います。
|
3
3
|
|
4
4
|
```py
|
5
5
|
import re
|
6
|
+
import os
|
6
7
|
import pathlib
|
7
8
|
|
8
9
|
name = 'hoge.jpg'
|
9
|
-
print(re.sub('\..
|
10
|
+
print(re.sub('\.[^.]+$', '.webp', name));
|
10
|
-
print(
|
11
|
+
print(os.path.splitext(name)[0] + '.webp')
|
12
|
+
print(pathlib.Path(name).stem + '.webp')
|
13
|
+
|
14
|
+
name = '.profile'
|
15
|
+
print(re.sub('\.[^.]+$', '.webp', name));
|
16
|
+
print(os.path.splitext(name)[0] + '.webp')
|
11
17
|
print(pathlib.Path(name).stem + '.webp')
|
12
18
|
```
|
13
19
|
|
20
|
+
```text:実行結果
|
21
|
+
hoge.webp
|
22
|
+
hoge.webp
|
23
|
+
hoge.webp
|
24
|
+
.webp
|
25
|
+
.profile.webp
|
26
|
+
.profile.webp
|
27
|
+
```
|
28
|
+
|
1
最初のドットで分割するように変更
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
import pathlib
|
7
7
|
|
8
8
|
name = 'hoge.jpg'
|
9
|
-
print(re.sub('\.
|
9
|
+
print(re.sub('\..*$', '.webp', name));
|
10
10
|
print(name.split('.')[0] + '.webp')
|
11
11
|
print(pathlib.Path(name).stem + '.webp')
|
12
12
|
```
|