回答編集履歴

5

テキスト修正

2018/01/02 14:51

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -227,3 +227,11 @@
227
227
  それほど大変ではなく、文字列で取り出せさえすれば正規表現という
228
228
 
229
229
  強力な武器を使えます。
230
+
231
+
232
+
233
+ ※ただし、`<div class="box">` の直下であれば、どの位置にあっても、
234
+
235
+ そのテキストノードを正規表現で取り出せるか?といえば、それは微妙です。
236
+
237
+ (いろいろ言ってすみません。)

4

テキスト修正

2018/01/02 14:51

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- 少し調べてみましたがどうやらphpQueryでは、
5
+ 少し調べてみましたがどうやらphpQueryでは、HiruLowさんも苦心されたとおり、
6
+
7
+
6
8
 
7
9
  > 子階層(のテキスト)まで取得しない
8
10
 

3

テキスト修正

2018/01/02 11:23

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -218,6 +218,10 @@
218
218
 
219
219
 
220
220
 
221
+ 上記は、あくまで、たとえばの話ですが、このようなルールがあれば、
222
+
221
- 上記のようなルールがあれば、`<div class="box">・・・</div>` を文字列で取り出すのは
223
+ `<div class="box">・・・</div>` を文字列で取り出すのは
222
-
224
+
223
- それほど大変ではなく、文字列で取り出せさえすれば正規表現という強力な武器を使えます。
225
+ それほど大変ではなく、文字列で取り出せさえすれば正規表現という
226
+
227
+ 強力な武器を使えます。

2

テキスト修正、追加

2018/01/02 11:15

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -153,3 +153,71 @@
153
153
 
154
154
 
155
155
  以上参考になれば幸いです。
156
+
157
+
158
+
159
+ ---
160
+
161
+ 追記
162
+
163
+
164
+
165
+
166
+
167
+ もう1案あるのですが、処理対象の HTML の中で、`<div class="box">` と、
168
+
169
+ これの閉じタグである `</div>` が現れる行に何らかの規則があるのだったら、
170
+
171
+ HTMLパーサーを使わずに、HTMLを普通のテキストとして1行1行読んでいき、
172
+
173
+ この何らかの規則にそって、`<div class="box">`から `</div>` までの
174
+
175
+ 複数行(あるいは1行)をひとつの文字列として取り込んで、あとは、
176
+
177
+ その文字列に対して正規表現で欲しい部分をキャプチャするという手もあると
178
+
179
+ 思います。
180
+
181
+
182
+
183
+ 上記で、「何らかの規則」と書いた具体例としては
184
+
185
+ たとえば以下のような2つのルールが考えられます。
186
+
187
+
188
+
189
+ 1. <div class="box"> が出現するときは、必ず1行の中に入っている。
190
+
191
+
192
+
193
+  これはたとえば
194
+
195
+ ```html
196
+
197
+ <div
198
+
199
+ class="box"
200
+
201
+ >
202
+
203
+ ```
204
+
205
+ のようになっていることはない、ということを意味します。
206
+
207
+
208
+
209
+ 2. <div class="box"> の閉じタグ </div> の直後には <!-- end of box --> というコメントがある。
210
+
211
+
212
+
213
+ ```html
214
+
215
+ </div><!-- end of box -->
216
+
217
+ ```
218
+
219
+
220
+
221
+ 上記のようなルールがあれば、`<div class="box">・・・</div>` を文字列で取り出すのは
222
+
223
+ それほど大変ではなく、文字列で取り出せさえすれば正規表現という強力な武器を使えます。

1

テキスト修正

2018/01/02 11:10

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  少し調べてみましたがどうやらphpQueryでは、
6
6
 
7
- > 子階層まで取得しない
7
+ > 子階層(のテキスト)まで取得しない
8
8
 
9
9
 
10
10