■検索対象文字列
<div> 一行目 </div> <div> 二行目 </div>上記の様な文字列から、一行目(タグの中身)のみ抽出する正規表現を教えてください。
/<div>[\s\S]*</div>/i
では二行目まで抽出されてしまいます。
よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
最短マッチさせれば良いので
/<div>[\s\S]*?<\/div>/i
で良いのではないでしょうか?
投稿2015/11/17 23:17
総合スコア5936
0
こういう場合に正規表現は使いませんが、一つ目の div
要素ノードを得る事は可能です。
JavaScript
1document.querySelector('div').firstChild.data
ただ、一つ目の div
要素ノードを得る仕組みにすると構成を変更するだけで機能しなくなるので、現実的には class
や id
属性を付与して参照しやすいようにマークアップします。
(2015/11/17 23:46追記)
検索対象はstringでdomではありません。
div要素の配下に要素がないのなら、下記正規表現でマッチできます。
JavaScript
1/<div>([^<]*)/.exec('<div>一行目</div><div>二行目</div>');
ただし、複雑な DOM なら空の div
要素ノードに innerHTML
で挿入して DOM 操作する方が無難です。
投稿2015/11/17 14:12
編集2015/11/17 14:47総合スコア18162
0
タグの中身のみですか
javascript
1/(?:<div>)[^(<\/div>)]*?(?=<\/div>)/
(?:)は非キャプチャリング、真ん中は</div>が現れないまで最小マッチ、3つ目の塊は肯定先読みです。
実行してないのでバグが有るかもしれませんが^^;(てかあるきがする)
投稿2015/11/18 01:46
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/11/18 07:53
2015/11/18 08:18
退会済みユーザー
2015/11/19 01:53
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/11/18 01:37