up:: regex

""の中のエスケープ無し”に一致

(?<=[\s\S]+"\[.*)"(?=.*"\n)
肯定先読み後読みを使用した。
Scoopマニフェストの制作に使用。

そのままだと"github": "https://github.com/pyenv-win/pyenv-win"などにも引っかかるが、たまたま対象が[から始まってたのでそれで無理矢理弾いた。

:を含まない行を削除

^(?!.*:).*$\n

:を含む行を辞書形式に置換

^(.*):(.*)$
1\t0\t\1\t\2\t

その前に空白や”を削除
|"| 

""なしで改行してしまったcsvの余計な行をくっつける

\n(?!.*,.*)

pythonのリストを文字列にしたものを再リスト化

(?<=')(?!, ).*?(?=')
""の中のエスケープ無し”に一致とあまり変わらない。
実際にpythonで使うときは'が邪魔なのでraw文字列で弾く。

MarkdownのHeadingだけ抜き出し

^(?!#).*\n
#
#
アウトラインを抜きたいときに。

Daily:: フィールドをdate:へ移す

だってデイリーノート使わないし……
それくらいなら他のとこで使えるようにフロントマターに書いたほうが良い。
---\n([\s\S\n]*---?)[\s\S\n]*\[(\d{4,4}-\d{2,2}-\d{2,2}).*\)
---\ndate: $2\n$1

角かっこ内の#を削除する

タグが増えて邪魔だった。
最短一致ではないので、一行に二つURLがある時に関係ない#が消されている。deriveとか。
\[(.*)(?<![C|c])#(.*)\]
[$1$2]

\[(.+?)(?<![c|C])#(.+?)\]

単純なyamlからデータ抜く

date: 2025-04-02
time: 10:56

前方
(.*?)(?=: )

後方
(?<=: )(.*)