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

回答編集履歴

4

追記

2021/02/15 01:41

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -17,4 +17,11 @@
17
17
  【テスト】の直前の改行だけ残す、というアプローチもあるでしょう。[Wandbox](https://wandbox.org/permlink/FRZhbjcR55MaAzpz)
18
18
  ```Python
19
19
  dst = re.sub(r'\n(?!【テスト】)', r'', src)
20
+ ```
21
+
22
+ さらに別解
23
+ ---
24
+ そもそも正規表現は不要なのではという気もします。[Wandbox](https://wandbox.org/permlink/RPGIuoPLxlNMQ9k0)
25
+ ```Python
26
+ dst = src.replace('\n・', '・')
20
27
  ```

3

追記

2021/02/15 01:41

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -10,4 +10,11 @@
10
10
  ...
11
11
  re.error: look-behind requires fixed-width pattern
12
12
  >>>
13
+ ```
14
+
15
+ 別解
16
+ ---
17
+ 【テスト】の直前の改行だけ残す、というアプローチもあるでしょう。[Wandbox](https://wandbox.org/permlink/FRZhbjcR55MaAzpz)
18
+ ```Python
19
+ dst = re.sub(r'\n(?!【テスト】)', r'', src)
13
20
  ```

2

追記

2021/02/15 01:35

投稿

LouiS0616
LouiS0616

スコア35678

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

1

追記

2021/02/15 01:32

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -3,4 +3,11 @@
3
3
  dst = re.sub(r'(【テスト】.*)\n', r'\1', src)
4
4
  ```
5
5
 
6
- () や \1 は改行文字以外を残すための工夫です。
6
+ () や \1 は改行文字以外を残すための工夫です。
7
+ 肯定的後読みを使いたいのも山々ですが、Pythonの場合それができないので。
8
+ ```Python
9
+ >>> re.compile(r'(?<=.*)')
10
+ ...
11
+ re.error: look-behind requires fixed-width pattern
12
+ >>>
13
+ ```