Regular Expression

Regular Expression?

A specific, standard textual syntax for representing patterns for matching text.

Widely used for string matching, and with some extended definition, it could even check a prime number.

\d

EX: \d\d\d

O   123

O 7122

X    jizz

.

EX: ...\.

O   cat.

O  712.

X    jizz

替代所有字元

[]

EX: [ji]zz

O     jzz

O      izz

X    zzz

選擇其中的一個字元

[^]

EX: [^j]izz

O     xizz

O      oizz

X    jizz

不選 ^ 以後的字元

c{a, b}

選 a ~ b 個 c 字元

a*

選任意個 a 字元(含0)

a+

選任意個 a 字元(不含0)

a?

選 0 或 1 個 a 字元

a?

選 0 或 1 個 a 字元

\s

代替空白、tab、換行

\s

代替空白、tab、換行

^....

....開頭

....$

....結尾

()

把東西包成一個群組

Using regular expression

Javascript

const regex = /jizz+/;
let checkEmail = new RegExp(
    '^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$'
);
regex.test("jizzzzzz");

After C++11

#include <regex>

int main(){
    regex jizz("jizz+");
    regex_match("jizzzzz", jizz);
    return 0;
}

Using regular expression

Python

import re
result = re.match("jizz+", "jizzzz")
if result:
    print(result.group(0))

Java

String str = "jizzzzzzz";
if(str.matches("jizz+")) 
    System.out.println("JIZZ~"); 
else 
    System.out.println("No.......");

Implement RegEx

  • http://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
  • https://github.com/kokke/tiny-regex-c/blob/master/re.c
  • http://www.evanlin.com/moocs-coursera-automata-note2/

 

RegularExpression

By Tommy Chiang

RegularExpression

  • 446