๐Ÿฆœ Computer Language/Python

[Python] ์ •๊ทœํ‘œํ˜„์‹ sub

์ •๊ทœํ‘œํ˜„์‹์€ ๋ฌธ์ž์—ด์— ์กฐ๊ฑด์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ ์ ์šฉํ•˜๋ฉด ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฒ€์‚ฌ ์ฝ”๋“œ๋ฅผ ์ •๊ทœ์‹์„ ํ†ตํ•ด ์ˆ˜์›”ํ•˜๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค.

 

๋†€๋ž๊ฒŒ๋„ ์นด์นด์˜ค ์ฝ”ํ…Œ์—๋„ ์ •๊ทœ์‹์„ ์ด์šฉํ• ๋งŒํ•œ ๋ฌธ์ œ๊ฐ€ ๊ฝค ๋‚˜์˜จ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ฒธ์‚ฌ๊ฒธ์‚ฌ ๊ณต๋ถ€ํ•ด์•ผ์ง€.

 

์ •๊ทœํ‘œํ˜„์‹์€ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ re ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

import re

 

re.sub(pattern, replacement, string)

string์—์„œ pattern๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด์„ replacement๋กœ ์น˜ํ™˜

print(re.sub('\d{4}', 'XXXX', '010-1234-5678')) # 010-XXXX-XXXX

์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŠน์ • pattern์„ ํฌํ•จํ•œ ๋ฌธ์ž์—ด์€ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

print(re.sub('def', '', 'defabcdef')) # abc

 

๋ฉ”ํƒ€๋ฌธ์ž

์ •๊ทœ์‹์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”ํƒ€ ๋ฌธ์ž๋ฅผ ์ž˜ ์‚ฌ์šฉํ•  ์ค„ ์•Œ์•„์•ผํ•œ๋‹ค.

 

๋ฉ”ํƒ€ ๋ฌธ์ž ์„ค๋ช…
* 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
+ 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
{m,n} mํšŒ ์ด์ƒ nํšŒ ์ดํ•˜
| or ์กฐ๊ฑด์‹ ex. A|B
^ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘
$ ๋ฌธ์ž์—ด์˜ ๋
? 0ํšŒ ์ด์ƒ 1ํšŒ ์ดํ•˜
[] ๋ฌธ์ž ํด๋ž˜์Šค
() ์ถ”์ถœํ•  ํŒจํ„ด ์ง€์ •

 

  1. ๋Œ€๊ด„ํ˜ธ ์•ˆ์—์„œ hyphen(-)์€ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • [a-z] = a๋ถ€ํ„ฐ z๊นŒ์ง€
    • [0-9] = 0๋ถ€ํ„ฐ 9๊นŒ์ง€

 

  1. ^๋ฌธ์ž์—ด์€ ๋งจ ์ฒ˜์Œ๊ณผ ์ผ์น˜ํ•จ์„ ์˜๋ฏธํ•˜์ง€๋งŒ, ๋Œ€๊ด„ํ˜ธ ์•ˆ์—์„œ์˜ [^๋ฌธ์ž์—ด]์€ not์˜ ์˜๋ฏธ์ด๋‹ค.

 

  1. ๋ฌธ์ž ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ ์ •๊ทœ ํ‘œํ˜„์‹
    • [0-9] = \d : ์ˆซ์ž๋ฅผ ์ฐพ๋Š”๋‹ค.
    • [^0-9] = \D : ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์ฐพ๋Š”๋‹ค.
    • [a-zA-Z0-9] = \w: ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž + ์ˆซ์ž์ธ ๊ฒƒ์„ ์ฐพ๋Š”๋‹ค. 
    • [^a-zA-Z0-9] = \W: ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž + ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์ฐพ๋Š”๋‹ค.

 

  1. ๋ฐ˜๋ณต *: * ์„ ํ–‰ ๋ฌธ์ž๊ฐ€ 0๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต 
    • ํ•ด๋‹น ๋ฌธ์ž ๋“ฑ์žฅํ•˜์ง€ ์•Š์•„๋„ ใ„ฑใ…Š

 

  1. ๋ฐ˜๋ณต +: + ์„ ํ–‰ ๋ฌธ์ž๊ฐ€ 1๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต
    • ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ ์ด์ƒ ๋“ฑ์žฅํ•ด์•ผํ•จ
    • [A-Z]+: ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด

 

  1. ๋ฐ˜๋ณต {}: ์„ ํ–‰ ๋ฌธ์ž์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์ง€์ •
    • ab{2}c: a๊ฐ€ 2ํšŒ ๋ฐ˜๋ณต๋˜์–ด์•ผํ•จ
    • ab{2,4}c: a๊ฐ€ 2ํšŒ ์ด์ƒ 4ํšŒ ์ด์‚ฌ ๋ฐ˜๋ณต๋˜์–ด์•ผํ•จ

 

  1. ๋ฐ˜๋ณต ?: ? ์„ ํ–‰ ๋ฌธ์ž์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜ = {0,1} 

 

  1. ^: ๋ฌธ์ž์—ด ์‹œ์ž‘์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์™€์•ผํ•จ

 

  1. $: ๋ฌธ์ž์—ด ๋์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์™€์•ผํ•จ