正規表現 Part10at TECH
正規表現 Part10 - 暇つぶし2ch537:デフォルトの名無しさん
13/01/27 04:46:22.44
>>536
おまたせです。書き込むときに長すぎると怒られたので【検索欄】を2行に分割してます。(一行に繋げて使って下さい)

【検索欄】
(?<C1>(?>(?:[^"\\_]|\\\p{ASCII})*)){0}(?<C2>(?:\g<C1>|_)*){0}(?:^(?<CAP1>(?:\g<C2>"\g<C1>")*\g<C2>"\g<C1>)_
|\G(?<=.)(?<CAP2>\g<C1>(?:"(?:\g<C2>"\g<C1>")*\g<C2>"\g<C1>)?)_)
【置換欄】
\3\4-

これの動作は
--------------------------------
カッコ外"カッコ内"カッコ外"カッコ内"
--------------------------------
というように、"が出現するごとにカッコの外か内かを判定してます。

よって、"の数が合わない場合、誤作動します。
-----------
~"~"~"~
-----------
↑最後の~がカッコ内と判定される。

また、\"のエスケープに対応しています
------------
~"~\"~"~
------------
↑正常に動く。

538:デフォルトの名無しさん
13/01/27 05:00:40.98
この動作で問題がある場合は言って下さい。
[<>=]を判定に付けたり、"の数が合わないときは最初から置換をしない、といったことが可能です。

↓この正規表現のソースみたいなもの。
URLリンク(www42.tok2.com)
秀丸用ライブラリ(hmonig.dll)のメモ的なものも書いておきました。
興味のある方はどうぞ。(無理に読まなくていいです)

今回作成に使った正規表現エディタ。↑のファイルを読み込んで編集出来ます。
URLリンク(1st.geocities.jp)

539:516
13/01/28 04:47:14.90
>>537
すごい、完璧に動作しました!有り難く使用させて頂きます。
記載頂いた表現の中身をまだ理解しきれていないので勉強します。
今回は誠に有難うございました。また返答が遅くなり
申し訳ございませんでした。

540:デフォルトの名無しさん
13/01/28 09:48:29.09
>>539
丁寧にどうもです。後から手を加えやすい作り方をしたので何か要望があればお気軽にー。

541:デフォルトの名無しさん
13/01/30 11:50:25.72
マクロでやれば簡単なのに

542:デフォルトの名無しさん
13/01/31 22:50:54.28
●正規表現の使用環境
sakuraテキストエディタ (bregonig.dll ver3.02 with Onigma 5.13.2)

●検索か置換か?
 置換

●説明
入れ子のデータを分離したい。

●対象データ
(あいう[えお])

これをキャプチャして、(あいう)[えお]と分離したいです。

よろしくお願いします。

543:デフォルトの名無しさん
13/02/01 05:15:18.17
(?:\(([^\(\)\{\}]*)\[([^\(\)\{\}]*)\]\))
($1)[$2]

544:>>543
13/02/01 15:54:50.12
ありがとうございます。
試してみます。

545:デフォルトの名無しさん
13/02/03 06:34:15.67
正規表現の定義は
スレッドプロセスに聞いてくれ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch