Regular Expression(正規表現) Part12at TECHRegular Expression(正規表現) Part12 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト300:デフォルトの名無しさん 14/02/19 21:16:56.09 $ echo 'input="aa(?<id>でーた)aaa"'|sed 's/(?<id>でーた)/痴漢/' input="aa痴漢aaa" 301:298 14/02/19 21:50:47.96 対象:aa(?<id>でー()た )aa パターン:\(\?<id>.*?\) 結果:aa置換た )aa 対象:(aa(?<id>でーた )aa) パターン:\(\?<id>.*\) 結果:(aa置換 最短、最長使ってみたがダメだった。 不確定の正規表現のパターンを正規表現で置換は無理ゲーなのか。 302:デフォルトの名無しさん 14/02/19 21:51:04.83 正規表現の一部を正規表現でマッチさせて置換したいってことなんかな。 素の正規表現だと有限回数の入れ子しか書けないからムリだろう。 鬼車なら、 ^(?<文字集合>\[\^?(?:[^\\\[\]]|\\.)*\]) ^(?<基本表現>(?:[^\\()\[\]]|\g<文字集合>|\\.)*) これを ^(?<基本表現>(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*) こうして ^(?<正規表現>\(\g<正規表現>*\)|\g<基本表現>)* これを ^(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)* こうして \(\?<id>(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*\) こうするとか。 基本表現のところがだいぶ適当だから場合によっては怪しい動きをするかも。 部分式呼び出しの使い方間違えててちょっと焦った。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch