質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

解決済

2回答

1068閲覧

正規表現に関して

color

総合スコア90

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

0クリップ

投稿2016/12/27 02:36

すみません。ご助言お願いしたいです。
正規表現を使用して

html

1fff<h1 style="ddd">qqq<dc>aaaa</dc>www</h1>ssss

これを

html

1fff<h1 style="ddd">テスト<dc>テスト</dc>テスト</h1>ssss

としたいのですが、
タグ以外を置換する様な、方法が出来ず、
詳しい方、ご助言頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

>[^<]+<>テスト<に置換すればいいのでは?

投稿2016/12/27 03:38

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

perl

1my $in = 'fff<h1 style="ddd">qqq<dc>aaaa</dc>www</h1>ssss'; 2 3my $out = ''; 4pos $in = 0; 5while ($in =~ /\G(?:(<[^>*]*>)|([^<>]+))/g) { 6 # タグは$1、それ以外は$2に入っている。 7 if ((0 == index lc($1 || ''), '<h1') 8 .. (0 == index lc($1 || ''), '</h1')) { 9 # "<h1"…"</h1" の間ではタグ以外を置換する。 10 $out .= ($1 || 'テスト'); 11 } else { 12 # それ以外は置換しない。 13 $out .= ($1 || $2); 14 } 15} 16 17print $out;

投稿2016/12/27 03:30

編集2016/12/27 03:31
ikedas

総合スコア4227

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

color

2017/01/02 09:41

すみません。有難う御座いました。 正月を通じて、正規表現解析します。 お忙しい中、有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問