技術書典16でChatGPT本を出します!(ここをクリック)

【Obsidian】Dataviewプラグインで正規表現検索を行う

この記事には企業のプロモーション広告(アフィリエイト)が貼ってあります

Dataviewで正規表現検索ができないかと情報を漁ってたら、見事にハマりました。結構苦戦したので(1・2時間くらい)今回怨嗟を込めてブログに記そうと思います。

まあ、一度覚えるとかなり使えるテクニックなので、備忘録として記録しておきます。

目次

結論

regexmatchを使いましょう。

regexmatch(pattern, string)

patternに検索条件(正規表現OK)、stringに検索する文字列・フロントマターを入れればいいと覚えておけばOK。

具体例

例1:フロントマター「read」に入ってる先頭文字列が「さ~ぞ」のファイルを検索

    table
    without ID link(file.link, default(title, file.name)) as "タイトル",
    read as "読み"
    from "01_Inbox" and #Words
    where regexmatch("^[さ-ぞ]", read)
    sort read asc

フロントマター「read」の先頭文字列が「さ・ざ・し・じ・す・ず・せ・ぜ・そ・ぞ」になっているものだけ抽出。whereの部分にregexmatchを書いてふるいをかけるイメージ。

ちなみに「さ」と「ぞ」はUnicodeでも指定可能です。その際はwhere regexmatch("^[\u3055-\u305E]", read)と記載すればOKです。

例2:フロントマター「title」の指定した文字列を検索

    table
    without ID link(file.link, default(title, file.name)) as "タイトル"
    from "01_Inbox" and #MOC/Words 
    where regexmatch("単語集(.行)",title)
    sort title asc

こちらもwhere regexmatch("単語集(.行)",title)で正規表現を使用。フロントマター「title」に「単語集(〇行)」と書いてあるファイルだけ検索結果に反映します。

参考サイト

JavaScript・正規表現両方わからない人間だったので苦戦しました。私みたいに苦戦する人が一人でも減りますように……!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次