回答編集履歴

4

追記

2021/02/15 01:41

投稿

LouiS0616
LouiS0616

スコア35676

test CHANGED
@@ -37,3 +37,17 @@
37
37
  dst = re.sub(r'\n(?!【テスト】)', r'', src)
38
38
 
39
39
  ```
40
+
41
+
42
+
43
+ さらに別解
44
+
45
+ ---
46
+
47
+ そもそも正規表現は不要なのではという気もします。[Wandbox](https://wandbox.org/permlink/RPGIuoPLxlNMQ9k0)
48
+
49
+ ```Python
50
+
51
+ dst = src.replace('\n・', '・')
52
+
53
+ ```

3

追記

2021/02/15 01:41

投稿

LouiS0616
LouiS0616

スコア35676

test CHANGED
@@ -23,3 +23,17 @@
23
23
  >>>
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ 別解
30
+
31
+ ---
32
+
33
+ 【テスト】の直前の改行だけ残す、というアプローチもあるでしょう。[Wandbox](https://wandbox.org/permlink/FRZhbjcR55MaAzpz)
34
+
35
+ ```Python
36
+
37
+ dst = re.sub(r'\n(?!【テスト】)', r'', src)
38
+
39
+ ```

2

追記

2021/02/15 01:35

投稿

LouiS0616
LouiS0616

スコア35676

test CHANGED
@@ -1,4 +1,4 @@
1
- 【テスト】から一番近い改行文字だけを置換対象にすれば良いです。
1
+ 【テスト】から一番近い改行文字だけを置換対象にすれば良いです。[Wandbox](https://wandbox.org/permlink/UttwQiuGYehBhUd5)
2
2
 
3
3
  ```Python
4
4
 

1

追記

2021/02/15 01:32

投稿

LouiS0616
LouiS0616

スコア35676

test CHANGED
@@ -9,3 +9,17 @@
9
9
 
10
10
 
11
11
  () や \1 は改行文字以外を残すための工夫です。
12
+
13
+ 肯定的後読みを使いたいのも山々ですが、Pythonの場合それができないので。
14
+
15
+ ```Python
16
+
17
+ >>> re.compile(r'(?<=.*)')
18
+
19
+ ...
20
+
21
+ re.error: look-behind requires fixed-width pattern
22
+
23
+ >>>
24
+
25
+ ```