Pattern matching » History » Version 1
digitalcircuit, 09/13/2018 03:29 AM
Partial version
| 1 | 1 | digitalcircuit | h1. Pattern matching |
|---|---|---|---|
| 2 | 1 | digitalcircuit | |
| 3 | 1 | digitalcircuit | *WORK IN PROGRESS* |
| 4 | 1 | digitalcircuit | |
| 5 | 1 | digitalcircuit | {{toc}} |
| 6 | 1 | digitalcircuit | |
| 7 | 1 | digitalcircuit | h2. Upgrade notice |
| 8 | 1 | digitalcircuit | |
| 9 | 1 | digitalcircuit | *This changed in Quassel @0.13@. "Follow the migration guide":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Migrating-from-versions-prior-to-013 if you're upgrading from an earlier version.* |
| 10 | 1 | digitalcircuit | |
| 11 | 1 | digitalcircuit | When using the client and core with different versions, some ignore rules will be processed differently. |
| 12 | 1 | digitalcircuit | |
| 13 | 1 | digitalcircuit | h2. Breakdown of usage |
| 14 | 1 | digitalcircuit | |
| 15 | 1 | digitalcircuit | Quassel supports several types of pattern matching for ignore and highlight rules. |
| 16 | 1 | digitalcircuit | |
| 17 | 1 | digitalcircuit | h3. Ignore Rules |
| 18 | 1 | digitalcircuit | |
| 19 | 1 | digitalcircuit | |_. @Regular expression@ |_. Item |_. Pattern matching type | |
| 20 | 1 | digitalcircuit | | Unchecked | @Ignore Rule@ | "Wildcard":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Wildcard | |
| 21 | 1 | digitalcircuit | | Unchecked | @Scope@ | "Multiple wildcard":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Multiple-wildcard | |
| 22 | 1 | digitalcircuit | | Checked | @Ignore Rule@ | "Regular expression":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Regular-expression | |
| 23 | 1 | digitalcircuit | | Checked | @Scope@ | "Multiple wildcard":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Multiple-wildcard | |
| 24 | 1 | digitalcircuit | |
| 25 | 1 | digitalcircuit | _For backwards compatibility, the @Regular expression@ checkbox only affects @Ignore Rule@ and not @Scope@._ |
| 26 | 1 | digitalcircuit | |
| 27 | 1 | digitalcircuit | h3. Highlight Rules |
| 28 | 1 | digitalcircuit | |
| 29 | 1 | digitalcircuit | |_. @RegEx@ |_. Item |_. Pattern matching type | |
| 30 | 1 | digitalcircuit | | Unchecked | @Rule@ | "Phrase":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Wildcard | |
| 31 | 1 | digitalcircuit | | Unchecked | @Sender@ | "Multiple wildcard":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Multiple-wildcard | |
| 32 | 1 | digitalcircuit | | Unchecked | @Channel@ | "Multiple wildcard":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Multiple-wildcard | |
| 33 | 1 | digitalcircuit | | Checked | @Rule@ | "Regular expression":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Regular-expression | |
| 34 | 1 | digitalcircuit | | Checked | @Sender@ | "Regular expression":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Regular-expression | |
| 35 | 1 | digitalcircuit | | Checked | @Channel@ | "Regular expression":https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Pattern_matching#Regular-expression | |
| 36 | 1 | digitalcircuit | |
| 37 | 1 | digitalcircuit | _This applies to both @Local Highlights@ and @Remote Highlights@ (or if using Monolithic, @Legacy Highlights@ and @Highlights@)._ |
| 38 | 1 | digitalcircuit | |
| 39 | 1 | digitalcircuit | h2. Types |
| 40 | 1 | digitalcircuit | |
| 41 | 1 | digitalcircuit | h3. Phrase |
| 42 | 1 | digitalcircuit | |
| 43 | 1 | digitalcircuit | This matches exactly what you type. |
| 44 | 1 | digitalcircuit | |
| 45 | 1 | digitalcircuit | <pre> |
| 46 | 1 | digitalcircuit | word |
| 47 | 1 | digitalcircuit | </pre> |
| 48 | 1 | digitalcircuit | |
| 49 | 1 | digitalcircuit | * Matches |
| 50 | 1 | digitalcircuit | ** @word@ |
| 51 | 1 | digitalcircuit | ** @A word.@ |
| 52 | 1 | digitalcircuit | ** @has a word in it@ |
| 53 | 1 | digitalcircuit | * Does not match |
| 54 | 1 | digitalcircuit | ** @wording@ |
| 55 | 1 | digitalcircuit | |
| 56 | 1 | digitalcircuit | _Changed in Quassel @0.13@:_ |
| 57 | 1 | digitalcircuit | |
| 58 | 1 | digitalcircuit | Spaces are matched, too, allowing you to be more specific. |
| 59 | 1 | digitalcircuit | |
| 60 | 1 | digitalcircuit | <pre> |
| 61 | 1 | digitalcircuit | spaced |
| 62 | 1 | digitalcircuit | </pre> |
| 63 | 1 | digitalcircuit | |
| 64 | 1 | digitalcircuit | _There's a leading space in the example above._ |
| 65 | 1 | digitalcircuit | |
| 66 | 1 | digitalcircuit | * Matches |
| 67 | 1 | digitalcircuit | ** @, spaced@ |
| 68 | 1 | digitalcircuit | ** @is spaced out@ |
| 69 | 1 | digitalcircuit | * Does not match |
| 70 | 1 | digitalcircuit | ** @;spaced@ |
| 71 | 1 | digitalcircuit | |
| 72 | 1 | digitalcircuit | h3. Wildcard |
| 73 | 1 | digitalcircuit | |
| 74 | 1 | digitalcircuit | _Changed in Quassel @0.13@:_ |
| 75 | 1 | digitalcircuit | |
| 76 | 1 | digitalcircuit | This uses simple wildcard substitution with @*@ and @?@ to match any characters or a single character, respectively. |
| 77 | 1 | digitalcircuit | |
| 78 | 1 | digitalcircuit | <pre> |
| 79 | 1 | digitalcircuit | *Asking questions\? Nope? |
| 80 | 1 | digitalcircuit | </pre> |
| 81 | 1 | digitalcircuit | |
| 82 | 1 | digitalcircuit | * Matches |
| 83 | 1 | digitalcircuit | ** @Asking questions? Nopea@ |
| 84 | 1 | digitalcircuit | ** @Basking questions? Nope.@ |
| 85 | 1 | digitalcircuit | * Does not match |
| 86 | 1 | digitalcircuit | ** @Asking questions. Nope.@ |
| 87 | 1 | digitalcircuit | ** @Asking questions? Nopes.@ |
| 88 | 1 | digitalcircuit | |
| 89 | 1 | digitalcircuit | Implicit wildcard is supported, too, allowing you to match everything *except* for what you specify. |
| 90 | 1 | digitalcircuit | |
| 91 | 1 | digitalcircuit | <pre> |
| 92 | 1 | digitalcircuit | !*filter* |
| 93 | 1 | digitalcircuit | </pre> |
| 94 | 1 | digitalcircuit | |
| 95 | 1 | digitalcircuit | * Matches |
| 96 | 1 | digitalcircuit | ** _Everything, unless it contains something from the below list_ |
| 97 | 1 | digitalcircuit | * Does not match |
| 98 | 1 | digitalcircuit | ** @filter@ |
| 99 | 1 | digitalcircuit | ** @filtering@ |
| 100 | 1 | digitalcircuit | ** @#nofilter yo@ |
| 101 | 1 | digitalcircuit | |
| 102 | 1 | digitalcircuit | Exclamation points can be escaped at the beginning to match something that starts with @!@ (_this is not required elsewhere_). |
| 103 | 1 | digitalcircuit | |
| 104 | 1 | digitalcircuit | <pre> |
| 105 | 1 | digitalcircuit | \!*filter* |
| 106 | 1 | digitalcircuit | </pre> |
| 107 | 1 | digitalcircuit | |
| 108 | 1 | digitalcircuit | * Matches |
| 109 | 1 | digitalcircuit | ** @!filter@ |
| 110 | 1 | digitalcircuit | ** @!yes filtering@ |
| 111 | 1 | digitalcircuit | * Does not match |
| 112 | 1 | digitalcircuit | ** @filter@ |
| 113 | 1 | digitalcircuit | |
| 114 | 1 | digitalcircuit | The @\@ character can be escaped, too, in case you're matching something that starts with @\!@. |
| 115 | 1 | digitalcircuit | |
| 116 | 1 | digitalcircuit | <pre> |
| 117 | 1 | digitalcircuit | \\!*filter* |
| 118 | 1 | digitalcircuit | </pre> |
| 119 | 1 | digitalcircuit | |
| 120 | 1 | digitalcircuit | * Matches |
| 121 | 1 | digitalcircuit | ** @\!filter@ |
| 122 | 1 | digitalcircuit | ** @\!yes filtering@ |
| 123 | 1 | digitalcircuit | * Does not match |
| 124 | 1 | digitalcircuit | ** @filter@ |
| 125 | 1 | digitalcircuit | ** @!filter@ |
| 126 | 1 | digitalcircuit | |
| 127 | 1 | digitalcircuit | h3. Multiple wildcard |
| 128 | 1 | digitalcircuit | |
| 129 | 1 | digitalcircuit | h3. Regular expression |
| 130 | 1 | digitalcircuit | |
| 131 | 1 | digitalcircuit | TODO |
| 132 | 1 | digitalcircuit | |
| 133 | 1 | digitalcircuit | h2. Migrating from versions prior to @0.13@ |
| 134 | 1 | digitalcircuit | |
| 135 | 1 | digitalcircuit | Quassel @0.13@ introduced new behavior for pattern matching to provide more flexibility and to improve performance. |
| 136 | 1 | digitalcircuit | |
| 137 | 1 | digitalcircuit | h3. Ignore Rules |
| 138 | 1 | digitalcircuit | |
| 139 | 1 | digitalcircuit | |
| 140 | 1 | digitalcircuit | h3. Highlight Rules |
| 141 | 1 | digitalcircuit | |
| 142 | 1 | digitalcircuit | h2. Technical details |
| 143 | 1 | digitalcircuit | |
| 144 | 1 | digitalcircuit | For all the technical details and source code changes, take a look at "Quassel pull request #415":https://github.com/quassel/quassel/pull/415 . @MultiPhrase@ is not covered here as Quassel only uses it internally for nickname matching. |