![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
JavaScript にて、正規表現を使って文字列取得を行っております。
例えば、
----------
<p><span>※</span> テキストテキスト</p>
----------
こうであった場合、
/^<p><sup>([\s\S]*)\/p>$/
このような形で取得してみたのですが、
これだと仮に
----------
<p><span>※</span> テキストテキスト</p>
<p>ここは取得しない。</p>
----------
このような文章のパターンの場合、
----------
<p>ここは取得しない。</p>
----------
ここの部分まで取得してきてしまいます。(後続に p 要素が続く限り全て取得してきてしまう。)
これを最初の p 要素の閉じタグまでとしたいです。
何か方法ありますでしょうか。
ご教授お願い致します。
No.2ベストアンサー
- 回答日時:
この手の処理を行うならば、HTML解析した後で DOM や XPath を使うことをお勧めします。
そうすればつまらない問題に悩まされることも無く、間違いの無い処理ができるでしょう。
が、多少の間違いには目をつぶっても、正規表現で簡単に行いたいならば、
単語区切りの \b と、最短一致数量子 *? を使えば、まずまずの結果が得られると思います。
var re = /<p\b.*?>.*?<span\b.*?>(.*?)<\/span\b.*?>(.*?)<\/p\b.*?>/g;
var m = re.exec(文字列);
if (m) 結果表示(m[1] + ' ' + m[2]);
すみません、お返事遅れました。
ご回答ありがとうございます!
やはり正規表現でテキスト置換していくのではなく、
DOM 操作である程度のところまでもっていくのが良いですよね。。。
手法としてどちらにしようか迷っていて、ただの String データを正規表現置換でさくっと処理できればそちらでいいかなと思ったのですが、
やってみると予想外に躓いてしまいました。。
回答いただいた正規表現を参考にしつつ、改めて DOM 操作の方向でも検討したいと思います。
ありがとうございました!
No.1
- 回答日時:
最短マッチ
<script>
var reg=new RegExp("<p>.*?</p>","g");
var mystr="<p><span>※</span> テキストテキスト</p>\n<p>ここは取得しない。</p>";
document.write(mystr.match(reg)[0]);
</script>
すみません、お返事遅れました。
ご回答ありがとうございます!
「.*」では試していたんですが、「.*?」とすれば良いのですね。
この手法に若干正規表現の条件を付け加えていけば再現できそうです。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
登録済みイベントリスナーの情...
-
strutsで空白を認識させるには?
-
ActiveReportのDataSourceについて
-
javascriptでローカルフォルダ...
-
C# ログイン画面からメイン画面...
-
JSPのエラー画面(error.jsp)に...
-
YouTubeのコメント欄の評価でバ...
-
フォームで同じ複数のnameで違...
-
jspからServletを呼び、元のjsp...
-
「<c:forEach タグが終了し...
-
リクエストに応じたselectedの...
-
ボタンが活性化の場合とは、ボ...
-
Formのデータが欠落することがある
-
腕時計の時報をならないように...
-
VB.NET DataReaderが開かれている
-
JSPからJSPへ情報を渡せる?
-
FormのsubmitでFormの内容がnull
-
MicroPythonコード
-
C言語で今まで表示していた画面...
-
ターミナルサービスでクライア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
登録済みイベントリスナーの情...
-
ActiveWorkbook.Pathの一つ下の...
-
ActiveReportのDataSourceについて
-
EXCEL VBAで、EXCELの入力規則...
-
Formatでmmが月と分を意味する理由
-
Excelで可視セルの行番号取得
-
VBAでTIFF画像を読み込むには?
-
javascriptでローカルフォルダ...
-
strutsで空白を認識させるには?
-
Spreadでの複数行選択
-
自分のファイル名取得
-
C# datagridview 行の取得
-
漢字読み取得方法
-
google apps script スクレイピ...
-
WebBrowserに表示されているペ...
-
jsp 動的テーブルについて
-
MultipartRequestWrapperについて
-
アクセスしたユーザーの地域(...
-
OpenGLでBMP画像を出力するには?
-
スプレッドのアクティブセルの...
おすすめ情報