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

回答編集履歴

1

別解を示す。

2017/12/06 08:59

投稿

KojiDoi
KojiDoi

スコア13727

answer CHANGED
@@ -8,4 +8,20 @@
8
8
 
9
9
  # スペースの後に[が存在しないなら補う
10
10
  a2 = re.sub(' (?![)' , '[', a1)
11
+ ```
12
+
13
+ 追記
14
+ 質問文の補足説明を見て、もう一度考えてみました。
15
+ 下記#1では、"数字または角開き括弧に続かない数字"の前に角開き括弧を置きます。
16
+ 下記#2では、"数字に続くカンマ"を角閉じ括弧に置換します。
17
+
18
+ ```python
19
+ import re
20
+ for a in ["[12, 34, 56]", "[12,34, 56]", "[7]", "a = 'aaa, bbb[12, 13, 14]. ccc.'"]:
21
+ a1=re.sub('(?<![[\d])(?=\d+)', '[', a) #1
22
+ a2=re.sub('(?<=\d),' , ']', a1) #2
23
+ print(a)
24
+ print(a1)
25
+ print(a2)
26
+ print('')
11
27
  ```