SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【正規表現】「○○○ではない」にマッチする正規表現

問題

「タブで始まらない行」の行頭に「・」をつけたいんですけど、正規表現を使った置換でできますか?

答え

以下のようなテキストがあるとき

AAA
	123円
BBB
	234円
CCC
	456円

以下のような正規表現が「タブが続かない行頭」にマッチするので、

^(?!\t)

よくあるテキストエディタでは、以下のような正規表現を使った置換で、行頭に「・」が付けられる。

^(?!\t) → ・

結果

・AAA
	123円
・BBB
	234円
・CCC
	456円

「数字で始まらない行の行頭」なら以下のように書ける。

^(?!\d)

vimの置換では否定先読みなどは以下のように書くため、

肯定先読み:\@=
否定先読み:\@!
肯定後読み:\@<=
否定後読み:\@<!

以下のように書く。

%s/^\(\t\)\@!/・/

関連するメモ

コメント