したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

htmltodatサポートスレッド

1066名無しさん:2022/04/24(日) 01:26:32
前レスで書いた正規表現ですが、「うふ〜ん」のレスには対応できてません。
( <span\ class="name"> や <span\ class="date"> などの要素がそもそもないため
マッチしない)、
変換後に変換警告で「レスxxx-xxxの間が飛んでいます」のメッセージが出ると思います。

で考えたのですが、前レスで書いた「グループ化(括弧でくくる)」は後ろに ? をつけて
(xxx)? のようにするとそのグループがあってもなくてもよい(正しい用語では0回または
1回マッチする)ようにできるので、名前にマッチする部分と投稿日にマッチする部分を
グループ化して後ろに ? をつけてみました。
括弧をつけてグループ化すると $1,$2…とカウントされる対象になってしまうのですが
括弧の最初を (?: としておくとカウントされないです。
(カウントとか自分用語使ってますが正式には捕獲とかキャプチャとかいうみたい)

で、その部分含め書き直したのが以下。

m#<span\ class="number">([0-9]+).+?()(?:<span\ class="name"><b>(.*?)</b></span>.*?)?(?:<span\ class="date">(.*?)</span>.*?)?<span\ class="escaped">(.*?)</span>#mik


ついでに拡張表現で書くとこんな感じ

m`
<span\ class="number">([0-9]+).+? #レス番
() #メール欄(ダミー)
(?:<span\ class="name"><b>(.*?)</b></span>.*?)? #名前欄
(?:<span\ class="date">(.*?)</span>.*?)? #投稿日
<span\ class="escaped">(.*?)</span> #レス本文
`mikx


…と書いてきたけど>>1064のレス見るとID取れるスレもあるって事なの?
(前はID取れないから別のサイトって話だったのに)
そういうときは具体的なスレのURL書いて欲しかったな…


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板