teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2019/01/15 13:47

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -16,4 +16,20 @@
16
16
  '.example.'
17
17
  >>> a.strip('cmowz')
18
18
  '.example.'
19
- ```
19
+ ```
20
+
21
+ なお、特定の文字を削除したい場合は str.replace が使えます。
22
+ ```Python
23
+ >>> a = 'I want to go to okinawa'
24
+ >>> a.replace('w', '')
25
+ 'I ant to go to okinaa'
26
+ >>>
27
+ >>> a.replace('aw', '')
28
+ 'I want to go to okina'
29
+ ```
30
+
31
+ 引数の解釈がstrip系の関数とは少し違うので注意が必要です。
32
+ - strip系は、あくまで文字の集まりとして引数を解釈します。
33
+ - その他多くの関数は、順序ある文字列として解釈します。
34
+
35
+ strip系の引数が集合型なら多くの誤解は防がれるのに、としばしば思います。

2

追記

2019/01/15 13:47

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -12,6 +12,8 @@
12
12
  >>>
13
13
  >>> a.lstrip('cmowz').rstrip('cmowz')
14
14
  '.example.'
15
+ >>> a.rstrip('cmowz').lstrip('cmowz') # 順序は関係ない
16
+ '.example.'
15
17
  >>> a.strip('cmowz')
16
18
  '.example.'
17
19
  ```

1

修正

2019/01/15 13:42

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,4 +1,17 @@
1
1
  文字列の最も外側の**先頭及び末尾から**というのがミソです。
2
2
 
3
- つまり、a.strip('w') は a.lstrip('w').rstrip('w') と同じです。
3
+ つまり、a.strip('wa') は a.lstrip('wa').rstrip('wa') と同じです。
4
- まず片側から特定の文字を削って、次に反対側から削るのです。
4
+ まず片側から特定の文字を削って、次に反対側から削るのです。
5
+ ```Python
6
+ >>> a = 'www.example.com'
7
+ >>>
8
+ >>> a.lstrip('cmowz')
9
+ '.example.com'
10
+ >>> a.rstrip('cmowz')
11
+ 'www.example.'
12
+ >>>
13
+ >>> a.lstrip('cmowz').rstrip('cmowz')
14
+ '.example.'
15
+ >>> a.strip('cmowz')
16
+ '.example.'
17
+ ```