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 Typeface、Apply Font Size など)は ICU 正規表現を使用し、大文字と小文字を区別しないマッチングやその他のオプションのために inline flags をサポートします。
Examples
「Examples」という見出しのセクションUse with the Regex String Manipulator
「Use with the Regex String Manipulator」という見出しのセクションRegex String Manipulator は正規表現の結果のみを返します。
| String | Regex | 説明 | Result |
|---|---|---|---|
| Hello World. | \s | スペースを削除 | HelloWorld. |
| As Capably as Cavalry. | C.....y | C で始まり y で終わる7文字の単語 | CapablyCavalry |
| Is it Colour or Color? | Colou?r | Colour または Color | ColourColor |
| 3 is the magic number. | \d | 任意の数字 | 3 |
Use with the Style/Material Behaviours
「Use with the Style/Material Behaviours」という見出しのセクションStyle Behaviours(Apply Typeface、Apply Font Size)および Material Behaviours(Apply Text Material など)は、正規表現の結果を使用してフォント、外観、文字間隔に影響を与えます。
| String | Layer | Regex | 説明 | Result |
|---|---|---|---|---|
| How are you today? | Apply Typeface | \b(today)\b | 単語 ‘today’ を返します。 | How are you today? |
| Animate in Cavalry | Apply Text Material | \b(Cavalry)\b | 単語 ‘Cavalry’ を返します | 単語 Cavalry が Fill で色付けされます |
Capture Groups
「Capture Groups」という見出しのセクションCapture Group は、マッチした文字列の特定の部分を保存および抽出する方法です。正規表現の一部を括弧で囲むと Group が作成され、Capture Group Indices Attribute に Id を入力することでフィルタリングできます。
たとえば、文字列 hello@cavalry.studio が与えられた場合、次の正規表現を使用して名前、ドメイン、トップレベルドメインを分離できます — \b(\w+)@(\w+)\.(\w+)\b。
これにより、次のインデックスで Capture Groups が保存されます:
| Index | Contents |
|---|---|
| 1 | hello |
| 2 | cavalry |
| 3 | studio |
これらの Capture Groups は、Capture Group Indices Attribute に Id を入力することで使用できます。たとえば、太字の書体が選択された Apply Typeface に 2 を入力すると — hello@scenegroup.co となります。または、Capture Group Indices を 1,3 に設定すると — hello@scenegroup.co となります。
値 0 を入力するか、Capture Group Indices Attribute を空のままにすると、完全なマッチが返されます。
Inline Flags
「Inline Flags」という見出しのセクション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) は大文字小文字を区別しないモードとマルチラインモードの両方を有効にします。
Example
「Example」という見出しのセクション| String | Regex | Result |
|---|---|---|
| Typography is important. Good typography matters. | (?i)(\btypography\b) | Typography is important. Good typography matters. |