質問編集履歴

4 追記

MISOSHIRU

MISOSHIRU score 27

2017/04/25 14:22  投稿

正規表現で任意の位置以降を削除するには
###前提・実現したいこと
Rubyで正規表現を使い、任意のhtml文字列に掛ける正規表現処理を作っています。
###質問(作りたい処理)
```
真ん中くらいのhtmlタグ以降の文字列を削除するにはどうしたら良いでしょうか?
以下、例1,2のようなあらゆるhtml文字列に対応したいです。  
例1:
<p>~~~</p>
<h2>~~</h2>
<p class="aaa">~~~</p>
~~~以降は削除~~~
<p>~~~</p>
<a>~~~</a>
例2:
<p style="text-align: left;"><a href="http://naiken.nurve.jp/" target="_blank">VR内見公式サイト</a></p>
<p style="text-align: left;">
<a href="http://hoge.jpg" rel="attachment wp-att-96738>
<img class="hoge" src="http://hoge.jp/hoge.jpg" alt="sub" width="000" height="000"/>
</a>
</p>
~~~以降を削除~~~
<p style="text-align: left;">Hello</p>
<h2 style="text-align: left;">Hello</h2>
```
###該当のhtml文字列
```Ruby
content = '
<h2>aaaについて</h2>
<p class="sssssss"><a href="http://~~~~~~~~~"><img class="~~~" /></a></p>
<p>~~~~~~~~~~~~~~~~~~~~</p>
<p>aaaaaaaaaaaaaaaaaaaa</p>
<h3><i class="~~~~~~~~~~"></i><span>hoge</span></h3>
<p><iframe width="000" height="000" src="https://www.youtube.com/embed/aaaaaa></iframe></p>
<h2>aaaaaaa</h2>
<p>~~~~~~~~~~~~~~~~~~~</p>
'
```
###試したこと
htmlタグを取得する正規表現は以下のように作ってみました。
間違っていたらすみません。
```Ruby
/<(.*)\s*.*>.*<\/\1>/
```
gsubメソッドで第2引数に空欄を指定することで削除ができました。
```Ruby
content.gsub(/正規表現/, "")
```
  • Ruby

    12642 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • 正規表現

    1203 questions

    正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

3 例2追記

MISOSHIRU

MISOSHIRU score 27

2017/04/25 14:07  投稿

正規表現で任意の位置以降を削除するには
###前提・実現したいこと
Rubyで正規表現を使い、任意のhtml文字列に掛ける正規表現処理を作っています。
###質問(作りたい処理)
```
真ん中くらいのhtmlタグ以降の文字列を削除するにはどうしたら良いでしょうか?
例1:
<p>~~~</p>
<h2>~~</h2>
<p class="aaa">~~~</p>
~~~以降は削除~~~
<p>~~~</p>
<a>~~~</a>
例2:
<p style="text-align: left;"><a href="http://naiken.nurve.jp/" target="_blank">VR内見公式サイト</a></p>
<p style="text-align: left;">
<a href="http://hoge.jpg" rel="attachment wp-att-96738>
<img class="hoge" src="http://hoge.jp/hoge.jpg" alt="sub" width="000" height="000"/>
</a>
</p>
~~~以降を削除~~~  
<p style="text-align: left;">Hello</p>
<h2 style="text-align: left;">Hello</h2>
```
###該当のhtml文字列
```Ruby
content = '
<h2>aaaについて</h2>
<p class="sssssss"><a href="http://~~~~~~~~~"><img class="~~~" /></a></p>
<p>~~~~~~~~~~~~~~~~~~~~</p>
<p>aaaaaaaaaaaaaaaaaaaa</p>
<h3><i class="~~~~~~~~~~"></i><span>hoge</span></h3>
<p><iframe width="000" height="000" src="https://www.youtube.com/embed/aaaaaa></iframe></p>
<h2>aaaaaaa</h2>
<p>~~~~~~~~~~~~~~~~~~~</p>
'
```
###試したこと
htmlタグを取得する正規表現は以下のように作ってみました。
間違っていたらすみません。
```Ruby
/<(.*)\s*.*>.*<\/\1>/
```
gsubメソッドで第2引数に空欄を指定することで削除ができました。
```Ruby
content.gsub(/正規表現/, "")
```
  • Ruby

    12642 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • 正規表現

    1203 questions

    正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

2 例2を追加

MISOSHIRU

MISOSHIRU score 27

2017/04/25 14:04  投稿

正規表現で任意の位置以降を削除するには
###前提・実現したいこと
Rubyで正規表現を使い、任意のhtml文字列に掛ける正規表現処理を作っています。
###質問(作りたい処理)
```
真ん中くらいのhtmlタグ以降の文字列を削除するにはどうしたら良いでしょうか?
例:
例1:
<p>~~~</p>
<h2>~~</h2>
<p class="aaa">~~~</p>
~~~以降は削除~~~
<p>~~~</p>
<a>~~~</a>
 
例2:  
<p style="text-align: left;"><a href="http://naiken.nurve.jp/" target="_blank">VR内見公式サイト</a></p>  
<p style="text-align: left;">  
<a href="http://hoge.jpg" rel="attachment wp-att-96738>  
<img class="hoge" src="http://hoge.jp/hoge.jpg" alt="sub" width="000" height="000"/>  
</a>  
</p>  
<p style="text-align: left;">Hello</p>  
<h2 style="text-align: left;">Hello</h2>  
 
```
###該当のhtml文字列
```Ruby
content = '
<h2>aaaについて</h2>
<p class="sssssss"><a href="http://~~~~~~~~~"><img class="~~~" /></a></p>
<p>~~~~~~~~~~~~~~~~~~~~</p>
<p>aaaaaaaaaaaaaaaaaaaa</p>
<h3><i class="~~~~~~~~~~"></i><span>hoge</span></h3>
<p><iframe width="000" height="000" src="https://www.youtube.com/embed/aaaaaa></iframe></p>
<h2>aaaaaaa</h2>
<p>~~~~~~~~~~~~~~~~~~~</p>
'
```
###試したこと
htmlタグを取得する正規表現は以下のように作ってみました。
間違っていたらすみません。
```Ruby
/<(.*)\s*.*>.*<\/\1>/
```
gsubメソッドで第2引数に空欄を指定することで削除ができました。
```Ruby
content.gsub(/正規表現/, "")
```
  • Ruby

    12642 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • 正規表現

    1203 questions

    正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

1 質問を明確にしました。

MISOSHIRU

MISOSHIRU score 27

2017/04/25 12:33  投稿

正規表現で任意の位置以降を削除するには
###前提・実現したいこと
Rubyで正規表現を使い、任意のhtml文字列に掛ける正規表現処理を作っています。
###作りたい処理
###質問(作りたい処理)
```
真ん中くらいのhtmlタグ以降の文字列を削除する。
真ん中くらいのhtmlタグ以降の文字列を削除するにはどうしたら良いでしょうか?
例:
<p>~~~</p>
<h2>~~</h2>
<p class="aaa">~~~</p>
~~~以降は削除~~~
<p>~~~</p>
<a>~~~</a>
```
###該当のhtml文字列
```Ruby
content = '
<h2>aaaについて</h2>
<p class="sssssss"><a href="http://~~~~~~~~~"><img class="~~~" /></a></p>
<p>~~~~~~~~~~~~~~~~~~~~</p>
<p>aaaaaaaaaaaaaaaaaaaa</p>
<h3><i class="~~~~~~~~~~"></i><span>hoge</span></h3>
<p><iframe width="000" height="000" src="https://www.youtube.com/embed/aaaaaa></iframe></p>
<h2>aaaaaaa</h2>
<p>~~~~~~~~~~~~~~~~~~~</p>
'
```
###試したこと
htmlタグを取得する正規表現は以下のように作ってみました。
間違っていたらすみません。
```Ruby
/<(.*)\s*.*>.*<\/\1>/
```
gsubメソッドで第2引数に空欄を指定することで削除ができました。
```Ruby
content.gsub(/正規表現/, "")
```
  • Ruby

    12642 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • 正規表現

    1203 questions

    正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る