[過去ログ] Regular Expression(正規表現) Part13©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
805: 800 2016/08/25(木)08:09 ID:RUhmm4s5(1/4) AAS
>>798
あ、でもこれって、

あああ(いいい)ううう(えええ(おおお)かかか)ききき(くくく)けけけ

のように、最初に出てくる括弧が「カッコ内カッコのあるカッコ」
ではない場合に

あああううう(えええ(おおお)かかか)ききき(くくく)けけけ

となってしまう気が…
この場合は

あああ(いいい)うううききき(くくく)けけけ

となってほしいというのが>>791さんの要望だと僕には読めたの
ですが、違うのかな
いずれにしてもすごい正規表現だね。すごい
806: 800 2016/08/25(木)09:27 ID:RUhmm4s5(2/4) AAS
>>794さんのは、単に検索すると「すべてのカッコ内カッコが検索」されるけれど、

\([^()]*\([^()]*\)[^()]*\)(.*)$

と書き換えて、置換後を$1にするってのはどう?
これなら、最初に出てくる括弧の中に括弧がない場合でも
上手くいくと思いますが、勘違いしていたらごめんなさい
807: 800 2016/08/25(木)09:59 ID:RUhmm4s5(3/4) AAS
連投すみません。楽しくなっちゃって

>>798さんのは、括弧が3重以上でも上手くいくというのがすごいところ
ですね。
なので、最初に出てくるカッコが「カッコ内カッコのあるカッコ」
ではない場合(=1重カッコ)にヒットしないように書き換えて、

\([^()]+(?<x>\(([^()]++|\g<x>)*\))[^()]+\)(.*)
$3

これでどうだ!
812: 2016/08/25(木)13:47 ID:RUhmm4s5(4/4) AAS
(AA(BB(CC))DD)
のような多重カッコを「x」という名前で定義しておいて、
「(」と「)」の間に入っているものは
・「(」と「)」以外の文字の並び
もしくは
・x(=多重カッコ)
と再帰的に表現しているってことですよね
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.046s