秀丸のマクロかRubyで文字列を簡単にできる処理を教えてください。あるタグで囲まれた中身だけ抽出して、改行したいと思っています。例えば、

<xyz>xyz</zyz>というタグがあるテキストの中に数十個あるとします。それを抽出して

<xyz>xyz</zyz>
<xyz>xyz</zyz>
<xyz>xyz</zyz>

などと改行をいれて、その部分だけ取り出したいと思っています。正規表現か何かで取得できると思うのですが、いまいちわかりません。よければ参考になる正規表現のページも合わせて教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/08/23 13:44:49
  • 終了:2006/08/23 15:35:02

ベストアンサー

id:tmasao No.2

tmasao回答回数77ベストアンサー獲得回数202006/08/23 14:43:53

ポイント50pt

Ruby の例:

Tagname = "xyz"

text = open("test.txt"){|f| f.read }

tags = text.scan(/(<#{Tagname}>.*?</#{Tagname}>/m)

puts tags

以下を参考にあげておきます:

id:silverspring

完璧です。ありがとうございます。

2006/08/23 15:33:40

その他の回答(2件)

id:jan8 No.1

jan8回答回数455ベストアンサー獲得回数962006/08/23 14:43:33

置換機能を使って

<.*>\f.*\f</.*>

\1

に置換すれば良いと思います。

この方法ではネストされたタグには対応しません。

秀丸のマクロがありました

http://www18.big.or.jp/~fujiwara/ikki/hidemaru/macro/deletet...

id:tmasao No.2

tmasao回答回数77ベストアンサー獲得回数202006/08/23 14:43:53ここでベストアンサー

ポイント50pt

Ruby の例:

Tagname = "xyz"

text = open("test.txt"){|f| f.read }

tags = text.scan(/(<#{Tagname}>.*?</#{Tagname}>/m)

puts tags

以下を参考にあげておきます:

id:silverspring

完璧です。ありがとうございます。

2006/08/23 15:33:40
id:jan8 No.3

jan8回答回数455ベストアンサー獲得回数962006/08/23 14:50:42

ポイント50pt

すいません、タグを削除すると勘違いしました。

単にgrep検索機能を使って

<.*>.*</.*>

を表示させれば、良いのではないでしょうか?

http://q.hatena.ne.jp/

id:silverspring

完璧です。ありがとうございます。

2006/08/23 15:33:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません