Slide 1

Slide 1 text

   / 4 = 088 4 92 3 4 9 42 1 # 04: / 4 .

Slide 2

Slide 2 text

        

Slide 3

Slide 3 text

    l "Cybozu" == "Cybozu"  l "Cybozu" in "Cybozu, Inc."

Slide 4

Slide 4 text

    s = 'If the condition is true, then do the indented statements.' if s != 'This is a pen': print('s is not "This is a pen") if 'cond' in s: print('s contains "cond"') if s.startswith('If '): print('s starts with "If ")

Slide 5

Slide 5 text

  ls /usr/bin/vi* l * G l ? G l [abc] G  : ) )( 1 .1 1 //

Slide 6

Slide 6 text

 :  [a-zA-Z0-9_-]{1,64}@[a-zA-Z0-9_-]{1,64}[a-zA-Z0-9_-¥.]{1,64} l l [email protected] l [email protected]

Slide 7

Slide 7 text

  l %$ ,/'# ! + l *)" -. (&

Slide 8

Slide 8 text

  : " / . /

Slide 9

Slide 9 text

      Ab l "

Slide 10

Slide 10 text

    | "   (...) $& (' () % )  * l a|b|c : "a", "b", "c"  l a(bc|ef) : "abc", "aef"  l! +# > $&

Slide 11

Slide 11 text

       ? 01   + 1   * 0   {min, max} minmax    bc*: "b", "bcccc"   l   >   (ab)+: "ab", "abababab"    (ab|cd){1,3}: "ababcd", "cdab", "cd"  

Slide 12

Slide 12 text

 "HTTP/1.1", "HTTP/2.0"    "."   "¥."

Slide 13

Slide 13 text

    .  1  […]    1  [^…]    1  [a-z] [abcdefghijklmnopqrfzuvwzyz]  l a.c : "abc", "a1c"  l [abc] : "a", "b", "c"  l [^abc] : "d", "1", "@"  l [abc]+ : "a", "aabcaac", "b" 

Slide 14

Slide 14 text

 ^    $     ^default_type +[a-zA-Z/-]+;$ "default_type application/octet-stream;"   

Slide 15

Slide 15 text

 ¥1, ¥2 :1,2 ()   <(div|p)>.*<¥/¥1> l "
aaa
" l "



"   

Slide 16

Slide 16 text

( 3: "Author:Taro""User:Jiro" 0&4 TaroJiro./ '(  (User|Author):(¥w+) ! $*  ¥1 "User"  "Author" ,¥2 "Taro" ,  ¥1-2…  (?:User|Author): (¥w+) * %)#"1+  ¥1  Taro  Jiro ,

Slide 17

Slide 17 text

  [a-zA-Z0-9_-]{1,64}@[a-zA-Z0-9_-]{1,64}[a-zA-Z0-9_-¥.]{1,64} l [a-zA-Z0-9_-] :   "_"  "-"  l {1,64} :  164

Slide 18

Slide 18 text

 HTTP"$'- " (=GET) "URI(=/index.html) HTTP !#(=1.1),+ #* /: "GET /index.html HTTP/1.1"  "GET", "/index.html", "1.1" ,+  https://regexr.com (  Tools  Details  ,+ &%). 

Slide 19

Slide 19 text

 33 / 3 /. 3 pat = re.compile(r'[kK]intone') l N m = pat.match('Kintone') l : l /. l

Slide 20

Slide 20 text

 ¥w [a-zA-Z0-9_] l  ¥W [^a-zA-Z0-9_]  ¥s [ ¥t¥n¥r¥f¥v] l  ¥S [^ ¥t¥n¥r¥f¥v] : 3# 3 / - .- - 33 / 3 /

Slide 21

Slide 21 text

pat = re.compile(r'~~~') r '~~~' raw string  l ¥ $  !   $ # "% & $ ': ¥n 

Slide 22

Slide 22 text

r… ¥Python2-% $&0+1,#2-(   ¥ 2-4*.   ¥¥ /  raw string % $& ¥2-" !'/  ¥¥¥¥/)3

Slide 23

Slide 23 text

E cE e E  I gM _ / # / 3 . / / / 3  g I Mad / # / 3 . / .  T / # / 3 . /  b M / # / 3 . : / : 3

Slide 24

Slide 24 text

      $ ls /bin | grep -E 'le?s' l | %  )"!+%  )"(+ $& l -E '#*    grep re regular expression re

Slide 25

Slide 25 text

       9/. cl r c l pb r oa gi h sed "/^user/ s/[tT]suruda/suzuki/" l user c tsuruda suzuki m sed -e "s/^#?¥s*PermitEmptyPasswords.*/PermitEmptyPasswords yes/" /etc/ssh/sshd_config l /etc/ssh/sshd_config PermitEmptyPasswords c PermitEmptyPasswords yes  d n 9/. e 1:: 9 56: 1 25/. 1 :/5 360 64 /5:8

Slide 26

Slide 26 text

   7 8 . 5 I l 55 / 7 8 . 5 7 C import re re.compile(r'(¥w|[_-]){1,64}@').match("_" * 25) :

Slide 27

Slide 27 text

  o t M y V P PMe ( ) l P P M h n M n n M {1,64} : r

Slide 28

Slide 28 text

  a(b|c) )           (

Slide 29

Slide 29 text

     (¥w|[_-]){1,64}@

Slide 30

Slide 30 text

     (¥w|[_-]){1,64}@ ¥w : [a-zA-Z0-9_] 

Slide 31

Slide 31 text

     (¥w|[_-]){1,64}@ ¥w : [a-zA-Z0-9_]  (¥w|[_-]) "

Slide 32

Slide 32 text

(¥w|[_-]){1,64}@   "__"    ( ) , -  ( ( ) , - ( ( ) , - @ 1 ( ) , -  @ ( ) , -  ( ) , - @ 1 ( ) , - ( ) , - ( ( ) , - @ 1 ( ) , - @ ( ) , - ( ) , - @ 1 ( ) , - 46 4 2 6

Slide 33

Slide 33 text

(¥w|[_-]){1,64}@ "  2  2 l " 2  _ 2 l (¥w|-){1,64}@  1 R l l 51_ E

Slide 34

Slide 34 text

 (".%/& .% - #0 1 $  ) ' ,* !+

Slide 35

Slide 35 text

  jq : *0&-0JSON'!72$. JSON25/8:(.341 ?@ ) % 96 

Slide 36

Slide 36 text

  : l / . .  l / . . .  l / . . .

Slide 37

Slide 37 text

    l J

Slide 38

Slide 38 text

 /etc/network/interfaces IP ,-(# )  import re ip_addr_pat = re.compile(r'!+$') with open(…) as f: for line in f: m = ip_addr_pat.search(line) if m is None: continue print(…)  m.group(0)   *+,- %&"'

Slide 39

Slide 39 text

  /usr/share/dict/words 3/#/,& -$  */#(/ # 0  2 $ grep -iE "%. '" /usr/share/dict/words aba aga aha ...   l !1") l +/# ^ $

Slide 40

Slide 40 text

 ""-- "  !$   l ": ty  os l : 20182030 l : 020 # l ty-2018-15 l os-2019-0

Slide 41

Slide 41 text

  ! &,1- (3$4 $4*' ) 080-1234-5678 // -  090(9876)5432 // ( ) . 08015247682 // .   0 $ echo "080-1234-5678 090(9876)5432 08015247682" | sed -E "s/%. )/¥1 ¥2 ¥3/"   ()  ? /#+"