Regular expressions From Online Manual

Revision as of 21:06, 13 September 2014 by Chainy (talk | contribs) (Creating headers to make it look like a nice wiki page! Also added some extra info about meta-characters, so that the example regex expressions make sense to the reader! Importance of the input mask not relevant here, that's mentioned elsewhere)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In SMF2.0, regular expressions (regex) can be used in input masks as found in the Advanced Settings when creating or editing a custom profile field.

Using Regular Expressions

When entering regular expressions (regex), you must surround them with delimiters such as tildes (~) or double quotes ("), otherwise they will not work and there will be no warning of this failure. Two examples of the correct way of entering regular expressions for SMF are: ~[12][0-9]{3}~ or "[12][0-9]{3}"

Examples

The following examples give an idea of what can be done with regular expressions:

  • "[A-Za-z]+" - Match all upper and lower case alphabet characters.
  • "[0-9]+" - Match all numeric characters.
  • "[A-Za-z0-9]{7}" - Match all upper and lower case alphabet and numeric characters seven times.
  • "[^0-9]?" - Forbid any number from being matched.
  • "^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$" - Only allow 3 or 6 character hexcodes.

Meta-characters

In regular expressions you can use meta-characters to define the search for matches.

  • ? - None or one match of the preceding expression.
  • + - One or more matches of the preceding expression.
  • * - None or more matches of the preceding expression.
  • {n} - Matches the preceding expression exactly n times.
  • {n,} - Matches the preceding expression at least n times.
  • {,n} - Matches the preceding expression no more than n times.
  • {n,m} - Matches the preceding expression at least n times, but no more than m times.
  • ^ - When used outside square brackets, it marks the start of the string. When used inside square brackets it has the affect of negating the class, but only if it is the first character.
  • $ - The end of the string.
  • \ - Escapes the next character.


Advertisement: