回答編集履歴

2

正規表現の可視化を追加

2015/10/22 15:30

投稿

shiena
shiena

スコア1825

test CHANGED
@@ -1,4 +1,8 @@
1
1
  結果の形が若干違いますが、`preg_match_all`で実現できます。
2
+
3
+ 正規表現を分解すると↓のようになります。
4
+
5
+ http://regexper.com/#%5C(.*%5C)%7C%5B%5E%5Cs%5D%2B
2
6
 
3
7
 
4
8
 
@@ -33,6 +37,8 @@
33
37
 
34
38
 
35
39
  キャプチャを使えば()を除去できますが、ちょっと扱いづらいですね。
40
+
41
+ http://regexper.com/#%5C((.*)%5C)%7C(%5B%5E%5Cs%5D%2B)
36
42
 
37
43
 
38
44
 

1

パターン追記

2015/10/22 15:30

投稿

shiena
shiena

スコア1825

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```php
6
6
 
7
- php > if (preg_match_all("/\(.*\)|[^\s]+/", "aaa bbb (ccc ddd) eee", $out) > 0) print_r($out);
7
+ php > if (preg_match_all("/\(.*\)|[^\s]+/", "aaa bbb (ccc ddd) eee", $out)) print_r($out);
8
8
 
9
9
  Array
10
10
 
@@ -29,3 +29,69 @@
29
29
  )
30
30
 
31
31
  ```
32
+
33
+
34
+
35
+ キャプチャを使えば()を除去できますが、ちょっと扱いづらいですね。
36
+
37
+
38
+
39
+ ```php
40
+
41
+ php > if (preg_match_all("/\((.*)\)|([^\s]+)/", "aaa bbb (ccc ddd) eee", $out)) print_r($out);
42
+
43
+ Array
44
+
45
+ (
46
+
47
+ [0] => Array
48
+
49
+ (
50
+
51
+ [0] => aaa
52
+
53
+ [1] => bbb
54
+
55
+ [2] => (ccc ddd)
56
+
57
+ [3] => eee
58
+
59
+ )
60
+
61
+
62
+
63
+ [1] => Array
64
+
65
+ (
66
+
67
+ [0] =>
68
+
69
+ [1] =>
70
+
71
+ [2] => ccc ddd
72
+
73
+ [3] =>
74
+
75
+ )
76
+
77
+
78
+
79
+ [2] => Array
80
+
81
+ (
82
+
83
+ [0] => aaa
84
+
85
+ [1] => bbb
86
+
87
+ [2] =>
88
+
89
+ [3] => eee
90
+
91
+ )
92
+
93
+
94
+
95
+ )
96
+
97
+ ```