正規表現の仕方No.23775
hiro41 さん 07/10/07 23:26
 
 下記の(1)及び(2)のような文字列が混在する文章で強調表示をそれぞれのようにし
たいのですが、正規表現はどのようにすればいいでしょうか?

(1) (aaa)bbb(ccc)
    (aaa)、(ccc)について甲種の強調表示

(2) (aaa(bbb)ccc(ddd)eee)
    (aaa 、ccc 、eee)について甲種の強調表示
    (bbb)、(ddd)について乙種の強調表示

[ ]
RE:23775 正規表現の仕方No.23776
山紫水明 さん 07/10/08 09:49
 
 hiro41さん,

> 下記の(1)及び(2)のような文字列が混在する文章で強調表示をそれぞれのよ
>うにしたいのですが、正規表現はどのようにすればいいでしょうか?

例題の括弧はすべて全角ということで,とりあえず次のようにしてみました。

(?<=))ccc(?=()    強調表示甲
(aaa)?|(ccc)|eee)  強調表示甲
((bbb|ddd))   強調表示乙

もっとスマートな書き方を誰かに示していただけるかもしれません。

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:23776 正規表現の仕方No.23777
hiro41 さん 07/10/08 13:23
 
 山紫水明さん、ありがとうございます。?をうまく使って表現するんですね。とて
も参考になりました。

 最終的な目標は、下記のような全角カッコのネスト構造の文章で、ネストの深度に
よって強調表示を変えたいと考えています。何かスマートな方法ってあるのかどう
か・・(^^ゞ

 あい(うえ)お。かき(くけ(こ)さし)、す(せそ(たち)つ(てと)な)に
(ぬ(ね(の(は)ひ)ふ)へ)ほ。ま(み(むめ)も(ら)りる(れろ)わ)。

[ ]
RE:23777 正規表現の仕方No.23778
IKKI さん 07/10/08 22:27
 
IKKI です。こんばんは。

>  最終的な目標は、下記のような全角カッコのネスト構造の文章で、ネストの深度に
> よって強調表示を変えたいと考えています。何かスマートな方法ってあるのかどう
> か・・(^^ゞ

秀丸の正規表現では n 重のネストに対応するスマートな方法はありません。

「4重まで対応」などと割り切れば次のような方法でできます。
(強調表示の優先順位は 甲種 > 乙種 > 丙種 > 丁種 とします)

甲種: ([^()]*)
乙種: ((([^()]*)|[^()])*)
丙種: ((((([^()]*)|[^()])*)|[^()])*)
丁種: ((((((([^()]*)|[^()])*)|[^()])*)|[^()])*)

[ ]
RE:23778 正規表現の仕方No.23780
秀丸担当 さん 07/10/09 10:42
 

>  最終的な目標は、下記のような全角カッコのネスト構造の文章で、ネストの深度
> に
> よって強調表示を変えたいと考えています。何かスマートな方法ってあるのかどう
> か・・(^^ゞ

ネストの深度で強調表示することは簡単にはできないです。
IKKIさんの書かれた正規表現はすごいですね。

[ ]
RE:23780 正規表現の仕方No.23790
hiro41 さん 07/10/12 09:02
 
 IKKIさん、お返事遅れすみません。すばらしい正規表現ですね。ありがとうござい
ます。週末に早速試してみます。

[ ]
RE:23778 正規表現の仕方No.23797
entaka さん 07/10/12 18:27
 
皆様、はじめまして
実は私もずいぶん前から、hiro41さんと同じことをしたいと思っておりましたが、結
局できずに悶々としておりました。

IKKIさんのアドバイス通りに設定しましたところ、
  @(ああああ)の場合は甲種
  A(ああああ(いいいい)ああああ)の場合、(いいいい)の部分が甲種
となっておりました。
Aの場合においても、『ああああ』の部分を甲種、『いいいい』の部分を乙種にする
ことはできませんでしょうか?

[ ]
RE:23797 正規表現の仕方No.23800
hiro41 さん 07/10/13 11:36
 
>IKKIさんのアドバイス通りに設定しましたところ、
>  @(ああああ)の場合は甲種
>  A(ああああ(いいいい)ああああ)の場合、(いいいい)の部分が甲種
>となっておりました。
>Aの場合においても、『ああああ』の部分を甲種、『いいいい』の部分を乙種にす
>ることはできませんでしょうか?

 entakaさん、こんにちは。おっしゃる通りですね。私もentakaさんと同じ希望です。
 ところで、強調表示の設定種類が多く、テキストファイルが大きい場合CPU負荷が
多くなりすぎるのでしょうか?
 スクロールを続けていると、停まってしまいます。その時CPU負荷は50〜70%です。
強調表示は20種類くらいで、テキストファイルの大きさは790Kくらいです。CPUはP4
の2.8G、メモリーは512Mなのですが。

[ ]
RE:23800 正規表現の仕方No.23802
IKKI さん 07/10/13 17:29
 
こちらにコメントしました。
http://www.maruo.co.jp/hidesoft/2/x23801_.html

# メールソフトから投稿するとき、サブジェクトを変えると別のスレッドになってし
まうのですね。
# 失礼しました。

[ ]
RE:23802 正規表現の仕方No.23803
K'zawa さん 07/10/13 19:07
 
IKKIさん、こんにちは。
K'zawa/ユーザーです。

># メールソフトから投稿するとき、サブジェクトを変えると別のスレッドになってし
>まうのですね。

「Re:」ではじめれば、あとは変えてもいいんですよ。

[ ]