Regex: Difference between revisions

From Network Security Wiki
Content added Content deleted
m (Protected "Regex" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite) [Delete=Allow only logged in users] (indefinite)))
No edit summary
Line 1: Line 1:
[[Category:Linux]]
[[Category:Linux]]

=Syntax=
=Syntax=
{{UC}}

Metacharacters Defined || Metacharacter Examples
MChar || Definition || Pattern || Sample Matches
^ Start of a string. || ^abc || abc, abcdefg, abc123, ...
$ End of a string. || abc$ || abc, endsinabc, 123abc, ...
. Any character (except \n newline) || a.c || abc, aac, acc, adc, aec, ...
| Alternation.
{...} Explicit quantifier notation.
[...] Explicit set of characters to match.
(...) Logical grouping of part of an expression.
* 0 or more of previous expression.
+ 1 or more of previous expression.
? 0 or 1 of previous expression; also forces minimal matching when an expression might match several strings within a search string.
\ Preceding one of the above, it makes it a literal instead of a special character. Preceding a special matching character, see below.





bill|ted ted, bill
ab{2}c abbc
a[bB]c abc, aBc
(abc){2} abcabc
ab*c ac, abc, abbc, abbbc, ...
ab+c abc, abbc, abbbc, ...
ab?c ac, abc
a\sc a c




{| class="wikitable"
{| class="wikitable"

Revision as of 15:58, 7 August 2017


Syntax

        This section is under construction.

Metacharacters Defined || Metacharacter Examples MChar || Definition || Pattern || Sample Matches ^ Start of a string. || ^abc || abc, abcdefg, abc123, ... $ End of a string. || abc$ || abc, endsinabc, 123abc, ... . Any character (except \n newline) || a.c || abc, aac, acc, adc, aec, ... | Alternation. {...} Explicit quantifier notation. [...] Explicit set of characters to match. (...) Logical grouping of part of an expression.

  • 0 or more of previous expression.

+ 1 or more of previous expression. ? 0 or 1 of previous expression; also forces minimal matching when an expression might match several strings within a search string. \ Preceding one of the above, it makes it a literal instead of a special character. Preceding a special matching character, see below.




bill|ted ted, bill ab{2}c abbc a[bB]c abc, aBc (abc){2} abcabc ab*c ac, abc, abbc, abbbc, ... ab+c abc, abbc, abbbc, ... ab?c ac, abc a\sc a c


Symbol Function
[\^$.|?*+() Special characters any other will match themselves
\ Escapes special characters and treat as literal
* Repeat the previous item zero or more times
. Single character except line break characters
.* Match zero or more characters
^ Match at the start of a line/string
$ Match at the end of a line/string
.$ Match a single character at the end of line/string
^ $ Match line with a single space
[^A-Z] Match any line beginning with any char from A to Z


Examples

  • For IP Addresses:

1. To Match upto 999.999.999.999:

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b            

OR shortened with a quantifier to:

\b(?:\d{1,3}\.){3}\d{1,3}\b

2. To match exactly upto 255.255.255.255:

 
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

OR shortened with a quantifier to:

\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
  • For Credit Card numbers:

1. Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13:

^4[0-9]{12}(?:[0-9]{3})?$

2. MasterCard numbers start with the numbers 51 through 55. All have 16 digits:

^5[1-5][0-9]{14}$


{{#widget:DISQUS |id=networkm |uniqid=Regex |url=https://aman.awiki.org/wiki/Regex }}