コンテンツにスキップ

Working with Regex

正規表現(Regex に短縮)は、Regex String Manipulator、Material/Style Behaviours(Apply Font Size など)、JavaScript Layers など、Cavalry のさまざまな場所で使用できます。

Regex は検索パターンを指定する文字のシーケンスです。Regex の一般的な用途は、文字列または文字列の一部にマッチさせ、その結果に対して何かを行うことです。たとえば、式 a+ は入力文字列内で見つかったすべての文字 a のインスタンスを返します。したがって、入力文字列 Cavalry は2つの a を含むため aa を返します。

Regex101 のようなオンラインプラットフォームは、正規表現の学習とテストに最適なリソースです。

JavaScript Layers は ECMAScript 正規表現を使用します。

Text および Style Behaviours(Apply TypefaceApply Font Size など)は ICU 正規表現を使用し、大文字と小文字を区別しないマッチングやその他のオプションのために inline flags をサポートします。

Regex String Manipulator は正規表現の結果のみを返します。

StringRegex説明Result
Hello World.\sスペースを削除HelloWorld.
As Capably as Cavalry.C.....yC で始まり y で終わる7文字の単語CapablyCavalry
Is it Colour or Color?Colou?rColour または ColorColourColor
3 is the magic number.\d任意の数字3

Style Behaviours(Apply TypefaceApply Font Size)および Material Behaviours(Apply Text Material など)は、正規表現の結果を使用してフォント、外観、文字間隔に影響を与えます。

StringLayerRegex説明Result
How are you today?Apply Typeface\b(today)\b単語 ‘today’ を返します。How are you today?
Animate in CavalryApply Text Material\b(Cavalry)\b単語 ‘Cavalry’ を返します単語 Cavalry が Fill で色付けされます

Capture Group は、マッチした文字列の特定の部分を保存および抽出する方法です。正規表現の一部を括弧で囲むと Group が作成され、Capture Group Indices Attribute に Id を入力することでフィルタリングできます。

たとえば、文字列 hello@cavalry.studio が与えられた場合、次の正規表現を使用して名前、ドメイン、トップレベルドメインを分離できます — \b(\w+)@(\w+)\.(\w+)\b

これにより、次のインデックスで Capture Groups が保存されます:

IndexContents
1hello
2cavalry
3studio

これらの Capture Groups は、Capture Group Indices Attribute に Id を入力することで使用できます。たとえば、太字の書体が選択された Apply Typeface2 を入力すると — hello@scenegroup.co となります。または、Capture Group Indices1,3 に設定すると — hello@scenegroup.co となります。

0 を入力するか、Capture Group Indices Attribute を空のままにすると、完全なマッチが返されます。

Inline flags は、式の先頭にフラグを配置することで正規表現エンジンのマッチング方法を変更します。これらの flags はすべての Style および Material Behaviours でサポートされています。

Flag名前説明Example
(?i)Case Insensitive大文字/小文字に関係なくマッチします(?i)hello は “Hello”、“HELLO”、“hello” にマッチします
(?m)Multiline^$ は文字列の先頭/末尾だけでなく行の境界でマッチします(?m)^Line は任意の行の先頭の “Line” にマッチします
(?s)Dot All. は改行文字および他の文字にマッチします(?s)a.b は “a”、改行、“b” にマッチします
(?x)Commentsパターン内での空白とコメントを許可し可読性を向上させます複雑なパターンに有用です

Flags は組み合わせることができます:(?im) は大文字小文字を区別しないモードとマルチラインモードの両方を有効にします。

StringRegexResult
Typography is important. Good typography matters.(?i)(\btypography\b)Typography is important. Good typography matters.