記事閲覧

− 野ざらし言 −

5195 最左最長がいけない(バカ)

文太 2022/12/14(Wed) 00:05 [5192]へのコメント
 そうだ! ssedには、Perl-like な「最短文字列」しか食べない
「*?」というnon-greedyな演算子があるじゃないか、と思い出してしまい……。
(onigsed については、調べません)

 以下のような悲惨なことになりました。
 正規表現のメタ文字をエスケープするの、嫌いです。好きな人はまず
いないと思うけど。だから、置換に失敗したくない!

 sedに数を数えさせるのは、えーと、ふつう、ムリです。下のように
なります。そのうち数を数えはじめそうで、自分が怖いです。
 ホールドスペースに最初、"0123456789"(文字列!)を入れておくなど、
やり方がないわけじゃありません。

 ま、バカです。

 Perl-like regex がある awk。聞いたことがありません。\(...\)を
1個1個分解して、配列に入れるのでしょうか。

 「素直にPerlでやれよ!」。Perl regexが使えるPerlを所有しておりません。
厚い厚い日本語の壁があるのです。


 Vzマクロはとてつもなく偉い、という結論です。


--- input.txt
\x ^aaa\([0-9]\)\([0-9]\)\([0-9]\)\([0-9]\)\zzz$
-------------

--- output.txt
aaa\1\2\3\4\zzz
-------------

--- detag.sed ---
#ssed -R (Perl-mode) -f detag.sed

s/^\\x \^//
s/^\\x //
s/\$$//

s/\\(.*?\\)/\\1/
s/\\1\)/\\1/			#泥縄です。訳が分かりません。

s/\\([^1]*?\\)/\\2/		#悲しくなる
s/\\2\)/\\2/			#同

s/\\([^12]*?\\)/\\3/		#悲しい
s/\\3\)/\\3/

s/\\([^123]*?\\)/\\4/		#さらに悲しい
s/\\4\)/\\4/

s/\\([^1234]*?\\)/\\5/		#もっと悲しい
s/\\5\)/\\5/

s/\\([^12345]*?\\)/\\6/		#以下同文
s/\\6\)/\\6/

s/\\([^123456]*?\\)/\\7/
s/\\7\)/\\7/

s/\\([^1234567]*?\\)/\\8/
s/\\8\)/\\8/

s/\\([^12345678]*?\\)/\\9/
s/\\9\)/\\9/
-----------------

 上、それほど時間はかかっていません。
 が、作業途中、とんでもない虚しさが心の中でどんどん巨大化していった
のは事実です。

関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)

- 5188.真剣マクロ(tag_rplp.def) - 文太 22/12/10-12:03

返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

おなまえ :
Eメール :
タイトル :
メッセージ: 通常モード(推奨)  整形モード(非推奨)  preモード(空白再現)
※ プログラムコード等を含まない場合は,できるだけ通常モードをご利用ください。

参照先 :
暗証キー: (英数字で8文字以内) プレビューなし


- 以下のフォームから自分の投稿記事を修正・削除することができます -

処理 記事No. 暗証キー