回答編集履歴

1

正規表現3種を1つにまとめました。

2020/07/17 12:36

投稿

kaz.Suenaga
kaz.Suenaga

スコア2037

test CHANGED
@@ -1,10 +1,10 @@
1
1
  きっともっと頭のいい書き方あると思いますが、 str_replace ではなくpreg_replace を使っています。
2
2
 
3
+ こんな感じでどうでしょう。
4
+
3
- 行頭・行末の1つだけの + の場合の処理が特殊になっていす。
5
+ 行頭・行末の処理とめられたので修正しました)
4
6
 
5
7
 
6
-
7
- こんな感じでどうでしょう。
8
8
 
9
9
 
10
10
 
@@ -14,27 +14,13 @@
14
14
 
15
15
 
16
16
 
17
- // 行頭の1文字+ の後に + 以外の1文字 → スペースと+の後の1文字
17
+ // 行頭または+以外の1文字)+(+以外の1文字または行末)
18
18
 
19
- $pattern[] = '/^+([^+])/';
19
+ $pattern[] = '/(^|[^+])+([^+]|$)/';
20
20
 
21
- $replacement[] = ' $1';
21
+ $replacement[] = '$1 $2';
22
22
 
23
23
 
24
-
25
- // + 以外の1文字の後に1文字の + (行末)→ +の前の1文字とスペース
26
-
27
- $pattern[] = '/([^+])+$/';
28
-
29
- $replacement[] = '$1 ';
30
-
31
-
32
-
33
- // 前後が + 以外の1文字の + → 前後の文字の間にスペース
34
-
35
- $pattern[] = '/([^+])+([^+])/';
36
-
37
- $replacement[] = '$1 $2';
38
24
 
39
25
 
40
26