Regular expressions: Difference between revisions From Online Manual

Jump to: navigation, search
(Updating the section on quantifiers)
(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)
 
Line 1: Line 1:
In SMF2.0, regular expressions can be used in the ''[[SMF2.0:Features_and_Options#Advanced_Settings|Advanced Settings]]'' when creating or editing a [[SMF2.0:Features_and_Options#Custom_Profile_Fields|custom profile field]].
In SMF2.0, regular expressions (regex) can be used in input masks as found in the ''[[SMF2.0:Features_and_Options#Advanced_Settings|Advanced Settings]]'' when creating or editing a custom profile field.


'''NOTE''' - 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: '''<span style="color:#FF0000">~</span>'''[12][0-9]{3}'''<span style="color:#FF0000">~</span>''' or '''<span style="color:#FF0000">"</span>'''[12][0-9]{3}'''<span style="color:#FF0000">"</span>'''
==Using Regular Expressions==


The input mask is important for your forum's security. Validating the input from a user can help to ensure that data is not used in a way you do not expect. Here are some examples of simple 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: '''<span style="color:#FF0000">~</span>'''[12][0-9]{3}'''<span style="color:#FF0000">~</span>''' or '''<span style="color:#FF0000">"</span>'''[12][0-9]{3}'''<span style="color:#FF0000">"</span>'''
 
===Examples===
 
The following examples give an idea of what can be done with regular expressions:


*'''<code>"[A-Za-z]+"</code>''' - Match all upper and lower case alphabet characters.
*'''<code>"[A-Za-z]+"</code>''' - Match all upper and lower case alphabet characters.
Line 11: Line 15:
*'''<code>"^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$" </code>''' - Only allow 3 or 6 character hexcodes.
*'''<code>"^([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$" </code>''' - Only allow 3 or 6 character hexcodes.


Additionally, special metacharacters such as '''?+*^$''' and '''{xx}''' can be defined:
===Meta-characters===
 
In regular expressions you can use meta-characters to define the search for matches.


*'''?''' - <u>None or one</u> match of the preceding expression.
*'''?''' - <u>None or one</u> match of the preceding expression.
Line 19: Line 25:
*'''{''n'',}''' - Matches the preceding expression <u>at least</u> ''n'' times.
*'''{''n'',}''' - Matches the preceding expression <u>at least</u> ''n'' times.
*'''{,''n''}''' - Matches the preceding expression <u>no more than</u> ''n'' times.
*'''{,''n''}''' - Matches the preceding expression <u>no more than</u> ''n'' times.
*'''{''n'',''m''}''' - Matches the preceding expression <u>at least</u> ''n'' times, but <u>no more than</u> ''m'' times.  
*'''{''n'',''m''}''' - Matches the preceding expression <u>at least</u> ''n'' times, but <u>no more than</u> ''m'' times.
*'''^''' - The start of the string.
*'''^''' - When used <u>outside</u> square brackets, it marks the start of the string. When used <u>inside</u> square brackets it has the affect of negating the class, but only if it is the first character.
*'''$''' - The end of the string.
*'''$''' - The end of the string.
*'''\''' - Escapes the next character.
*'''\''' - Escapes the next character.


[[Category: As an administrator]]
[[Category: As an administrator]]

Latest revision as of 21:06, 13 September 2014

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: