正規表現によるふりがな削除No.18425
藤四郎 さん 04/11/29 16:34
 
 初歩的な質問で申し訳ありませんが、分かる方よろしくお願いします。

 下記のようにふりがなのついた文章からふりがなを削除するため、検索語に「(.
*)」を指定して正規表現による置換を行いました。

社会(しゃかい)を変革(へんかく)する。

 すると、改行までに含まれる最初の( と最後の )の間が置換対象となり、「社会
する」と変換されてしまいます。置換後に「社会を変革する」とするためには、どの
ようにすればいいのでしょうか。

[ ]
RE:18425 正規表現によるふりがな削除No.18426
Iranoan さん 04/11/29 17:07
 
 藤四郎さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
>  下記のようにふりがなのついた文章からふりがなを削除するため、検索語に「(.
> *)」を指定して正規表現による置換を行いました。
>
> 社会(しゃかい)を変革(へんかく)する。
>
>  すると、改行までに含まれる最初の( と最後の )の間が置換対象となり、「社会
> する」と変換されてしまいます。置換後に「社会を変革する」とするためには、どの
> ようにすればいいのでしょうか。
 どのヴァージョンをお使いかなど環境が不明ですが、最新版なら検索語を
「(.*?)」にすれば多分よいです。

[ ]
RE:18425 正規表現によるふりがな削除No.18427
でるもんた さん 04/11/29 17:09
 
>  下記のようにふりがなのついた文章からふりがなを削除するため、検索語に「(.
> *)」を指定して正規表現による置換を行いました。
>
> 社会(しゃかい)を変革(へんかく)する。

([^)]*) でどうでしょうか。

[ ]
RE:18426 正規表現によるふりがな削除No.18429
藤四郎 さん 04/11/29 19:34
 
 Iranoanさん、ありがとうございます。

 秀丸のバージョンは4.14です。文書の一部で試してみたところ、教えていただいた
方法で希望通りの結果になりました。ワイルドカードと正規表現の.*はほぼ同じと覚
えていたので、思わぬ結果にあわてていました。ただ情けないことに、なぜ?をつけ
ると良いのかは、秀丸ヘルプを見ながら考えてみましたが謎です。

[ ]
RE:18427 正規表現によるふりがな削除No.18430
藤四郎 さん 04/11/29 19:41
 
 でるもんたさん、ありがとうございます。

 教えていただいた方法で、希望通りの結果になりました。キャラクタクラスの利用
は自分でも考えてみたのですが、こんな簡単な形でできるとは思い至りませんでした。

[ ]
RE:18429 正規表現によるふりがな削除No.18431
Iranoan さん 04/11/29 19:46
 
 藤四郎さん今日は、Iranoan です。
> なぜ?をつけ
> ると良いのかは、秀丸ヘルプを見ながら考えてみましたが謎です。
 通常のヘルプからもジャンプできますが、Hmjre.hlp を御覧ください。

[ ]
RE:18431 正規表現によるふりがな削除No.18432
藤四郎 さん 04/11/29 23:08
 
 Iranoanさん、こんばんは。

 Hmjre.hlpを読み、疑問が氷解しました。ものぐさ指定というのですね。複雑な正
規表現を使った一括置換は怖くて敬遠していましたが、拡張機能を使って少し検討し
てみようかなと思っています。

[ ]
RE:18432 正規表現によるふりがな削除No.18456
でるもんた さん 04/12/03 01:34
 
でるもんたです。

> Hmjre.hlpを読み、疑問が氷解しました。ものぐさ指定というのですね。

日本語名はまだ定訳がないようですね。
英名は lazy match だと思いますが、日本語だと「最短一致」と呼んだほうが
他の人に話が通じやすいように思います。

> 複雑な正規表現を使った一括置換は怖くて敬遠していましたが、

そんなことはないですよ。
でも一括は怖いので、1回ずつ試しながら、うまくいくと判断した時点で
「以下全部」としてどーっと変換。

[ ]