【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」に「単語集(〇行)」と書いてあるファイルだけ検索結果に反映します。

参考サイト・書籍

https://blacksmithgu.github.io/obsidian-dataview/reference/functions/

https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_expressions

JavaScript・正規表現両方わからない人間だったので苦戦しました。

みんなしっかり公式ドキュメントを読み込もうな……。

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