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

回答編集履歴

3

修正

2018/08/06 06:25

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -11,7 +11,8 @@
11
11
  ~~どうしても正規表現を使いたいなら、subよりmatchの方が適当かと。~~
12
12
  撤回。後方参照を使うと楽です。
13
13
  ```Python
14
+ >>> src = '["Hello"] ["World"]'
14
- >>> dst = re.sub(r'["(.+)"]', r'\1', src)
15
+ >>> dst = re.sub(r'["(.+?)"]', r'\1', src)
15
16
  >>> print(dst)
16
- Hello
17
+ Hello World
17
18
  ```

2

修正

2018/08/06 06:25

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -8,11 +8,10 @@
8
8
  正規表現で上手くいかないのは、メタ文字である[を使っているからです。
9
9
 
10
10
  ---
11
- どうしても正規表現を使いたいなら、subよりmatchの方が適当かと。
11
+ ~~どうしても正規表現を使いたいなら、subよりmatchの方が適当かと。~~
12
+ 撤回。後方参照を使うと楽です。
12
13
  ```Python
13
- >>> m = re.match(r'["(.+)"]', src)
14
+ >>> dst = re.sub(r'["(.+)"]', r'\1', src)
14
- >>> assert m
15
- >>>
16
- >>> print(m.group(1))
15
+ >>> print(dst)
17
16
  Hello
18
17
  ```

1

追記

2018/08/06 06:10

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -5,4 +5,14 @@
5
5
  Hello
6
6
  ```
7
7
 
8
- 正規表現で上手くいかないのは、メタ文字である[を使っているからです。
8
+ 正規表現で上手くいかないのは、メタ文字である[を使っているからです。
9
+
10
+ ---
11
+ どうしても正規表現を使いたいなら、subよりmatchの方が適当かと。
12
+ ```Python
13
+ >>> m = re.match(r'["(.+)"]', src)
14
+ >>> assert m
15
+ >>>
16
+ >>> print(m.group(1))
17
+ Hello
18
+ ```