Upgrade to Pro — share decks privately, control downloads, hide ads and more …

正規表現

 正規表現

2017/03/01のB3ゼミで発表

Yumeto Inaoka

March 01, 2017
Tweet

More Decks by Yumeto Inaoka

Other Decks in Technology

Transcript

  1. ਖ਼نදݱ
    #θϛ

    ࣗવݴޠॲཧݚڀࣨɹҴԬເਓ

    View Slide

  2. ൃද಺༰
    ˗ ਖ਼نදݱͱ͸
    ˗ ਖ਼نදݱΛ࢖Θͳ͍৔߹ɾ࢖ͬͨ৔߹
    ˗ ߏจ
    ˗ লུɾϝλจࣈ

    View Slide

  3. ਖ਼نදݱͱ͸
    ˗ จࣈྻू߹ΛͭͷจࣈྻͰදݱ͢Δํ๏
    ˗ ݕࡧͳͲʹར༻͞Ε͍ͯΔ
    ˗ ଟ͘ͷϓϩάϥϜݴޠͰར༻Մೳ
    ˗ ݩʑ͸ਓ޻ݴޠΛද͢खஈͷͭͱͯ͠ಋೖ
    ˗ ӳޠͩͱ3FHVMBSFYQSFTTJPO
    ˗ ུͯ͠SF SFHFY SFHFYQ

    View Slide

  4. ਖ਼نදݱΛ࢖Θͳ͍৔߹
    ˗ 8JOEPXT΍8JOEPXTΛݕࡧ
    os = ["Windows 95", "Windows95", "windows 95",
    “windows95”, "Windows 98", "Windows98",

    "windows 98", “windows98”]


    print("ok" if s in os else “ng")


    # Windows95 -> ok

    # windows 98 -> ok

    # Windows Me -> ng

    View Slide

  5. ਖ਼نදݱΛ࢖ͬͨ৔߹
    ˗ 8JOEPXT΍8JOEPXTΛݕࡧ
    os = r"[Ww]indows ?9[58]"


    print("ok" if re.match(os, s) else “ng")




    # Windows95 -> ok

    # windows 98 -> ok

    # Windows Me -> ng

    View Slide

  6. ਖ਼نදݱΛ࢖ͬͨ৔߹
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"


    print("ok" if re.match(phone, s) else "ng")




    # 070-0123-4567 -> ok

    # 09009876543 -> ok

    # 06-6012-3456 -> ng

    View Slide

  7. ਖ਼نදݱͷߏจ
    ˗ ೚ҙͷҰจࣈ
    ptn = r”r.c.”


    # rice -> ok

    # rich -> ok

    # rock -> ok

    # roc -> ng

    # reach -> ng

    View Slide

  8. ਖ਼نදݱͷߏจ
    ˗ ಛఆͷҰจࣈ<ʜ>
    ptn = r”[bdm]ay”


    # bay -> ok

    # day -> ok

    # may -> ok

    # way -> ng

    # say -> ng

    # pay -> ng

    View Slide

  9. ਖ਼نදݱͷߏจ
    ˗ จ಄?
    ptn = r”^re”


    # reborn -> ok

    # revenge -> ok

    # replay -> ok

    # preview -> ng

    # unstable -> ng

    # alive -> ng

    View Slide

  10. ਖ਼نදݱͷߏจ
    ˗ จ຤
    ptn = r”able$”


    # movable -> ok

    # readable -> ok

    # able -> ok

    # stably -> ng

    # assemble -> ng


    View Slide

  11. ਖ਼نදݱͷߏจ
    ˗ ճҎ্ͷ܁Γฦ͠
    ptn = r”w*”


    # w -> ok

    # ww -> ok

    # wwww -> ok

    # -> ok

    # oh -> ng

    # yeah -> ng

    # hey -> ng

    View Slide

  12. ਖ਼نදݱͷߏจ
    ˗ ճҎ্ͷ܁Γฦ͠
    ptn = r”oh+”


    # oh -> ok

    # ohh -> ok

    # ohhhh -> ok

    # o -> ng

    # ok -> ng

    View Slide

  13. ਖ਼نදݱͷߏจ
    ˗ ճ͔ճ
    ptn = r”^b?l?ack”


    # ack -> ok

    # lack -> ok

    # back -> ok

    # black -> ok

    # block -> ng

    # slack -> ng

    View Slide

  14. ਖ਼نදݱͷߏจ
    ˗ Nճ͔ΒOճ\N O^
    ptn = r”^g{2,4}d$”


    # good -> ok

    # goood -> ok

    # gooood -> ok

    # gd -> ng

    # god -> ng

    # goooood -> ng

    View Slide

  15. লུɾϝλจࣈ
    ˗ ܻҎ্ͷ਺ࣈྻ
    ptn = r”[0123456789]+”


    View Slide

  16. লུɾϝλจࣈ
    ˗ ܻҎ্ͷ਺ࣈྻ
    # ptn = r”[0123456789]+”

    ptn = r”[0-9]+”

    View Slide

  17. লུɾϝλจࣈ
    ˗ ܻҎ্ͷ਺ࣈྻ
    # ptn = r”[0123456789]+”

    # ptn = r”[0-9]+”

    ptn = r”\d+”

    View Slide

  18. লུɾϝλจࣈ
    ˗ จࣈҎ্ͷӳখจࣈྻ
    ptn = r”[abcdefghijklmnopqrstuvwxyz]+”

    View Slide

  19. লུɾϝλจࣈ
    ˗ จࣈҎ্ͷӳখจࣈྻ
    # ptn = r”[abcdefghijklmnopqrstuvwxyz]+”

    ptn = r”[a-z]+”

    View Slide

  20. লུɾϝλจࣈ
    ˗ ઌ಄͕ӳࣈɺͦΕҎ͕߱ӳ਺ࣈຢ͸@
    ptn = r”[a-zA-Z][a-zA-Z_\d]*”

    View Slide

  21. লུɾϝλจࣈ
    ˗ ઌ಄͕ӳࣈɺͦΕҎ͕߱ӳ਺ࣈຢ͸@
    # ptn = r”[a-zA-Z][a-zA-Z_\d]*”

    ptn = r”[a-zA-Z]\w*”

    View Slide

  22. ਖ਼نදݱͷྫ
    ˗ 8JOEPXT΍8JOEPXTΛݕࡧ
    os = r"[Ww]indows ?9[58]"

    View Slide

  23. ਖ਼نදݱͷྫ
    ˗ 8JOEPXT΍8JOEPXTΛݕࡧ
    os = r"[Ww]indows ?9[58]"

    View Slide

  24. ਖ਼نදݱͷྫ
    ˗ 8JOEPXT΍8JOEPXTΛݕࡧ
    os = r"[Ww]indows ?9[58]"

    View Slide

  25. ਖ਼نදݱͷྫ
    ˗ 8JOEPXT΍8JOEPXTΛݕࡧ
    os = r"[Ww]indows ?9[58]"

    View Slide

  26. ਖ਼نදݱͷྫ
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"



    View Slide

  27. ਖ਼نදݱͷྫ
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"



    View Slide

  28. ਖ਼نදݱͷྫ
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"



    View Slide

  29. ਖ਼نදݱͷྫ
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"



    View Slide

  30. ਖ਼نදݱͷྫ
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"



    View Slide

  31. ਖ਼نදݱͷྫ
    ˗ ܞଳి࿩൪߸Λݕࡧ
    phone = r"0[789]0-?\d{4}-?\d{4}"



    View Slide

  32. ൃදͨ͠಺༰
    ˗ ਖ਼نදݱͱ͸
    ˗ ਖ਼نදݱΛ࢖Θͳ͍৔߹ɾ࢖ͬͨ৔߹
    ˗ ߏจ
    ˗ লུɾϝλจࣈ

    View Slide