정규표현식(regex) - 마침표(.)

Posted by ITPangPang
2016. 8. 28. 23:14 기타/Regular Expression


정규표현식(regex)

마침표(.)


ㆍ 정규표현식 연습 첫번째 글로 마침표(.)를

    사용해보겠습니다.

 

 마침표는 정규표현식에서 모든문자하나

    의미하게 됩니다 



바로 정규표현식을

사용하기 위해서


처음글에서 소개했던

http://regexr.com/


사이트에 들어가서

Text를 대충 써본후에

Expression에 

마침표를 넣어보겠습니다.

.(마침표)



이런식으로 /(표현식)/g

/./g

즉 마침표를 하나 넣어보니

모든 Text와 match되는것을

확인 할 수 있습니다


마침표가 모든문자 하나이므로

전부해당 된다는 뜻입니다


이번에는

똑같은 Text에서

. (마침표 + 스페이스)


이렇게 변경해보겠습니다


결과는 no match

일치하는 Text가 없습니다

아래 텍스트에서


글자하나+공백이 없어서

위와 같은 결과가 나타납니다


혹시 모르니 위와 일치하도록

text를 아래 생성한후에 확인해

보도록 하겠습니다


Text 입력후 마지막에 스페이스를

한칸씩 넣어주니

일치된 것을 확인 할 수 있습니다


a.(텍스트+마침표)


이번에는 a로 시작하는 문자열을

찾아보도록 하겠습니다


위에서 Expression만

a.로 변경해서 결과를

확인해보도록 하겠습니다



원하는 결과는

a로 시작하는 문자열이었는데

band, david등 a로 시작하지

않는 문자열들도 match가 됩니다


이를 해결하기 위해서는

위의 표현식에서

하나를 더 추가해주면

해결됩니다


\ba.


해결방법은 역슬래쉬 b입니다

\b


역슬래쉬에 대해서는 나중에

쓰게 될 주제인데


정규표현식에는

메타문자라는것이 있습니다

\b \f \n등

좀 더 구체적으로 문자열을

match 시키기 위한 방법?입니다


여기서 \b(역슬래쉬 b)는

위치를 찾아주는 역할을

합니다


b가 boundaries라는 의미로

경계를 친다는 의미입니다


위의 표현식은

(경계선)a(아무문자)

이런식으로 해석할수 있습니다


뭐 역시 글을 못쓰다보니..

결과를 보면서 이해해보면


이런식으로

위와 다르게

a로 시작하는 문자열들만

match된 것을 확인할 수 있습니다


이번에는 텍스트를 조금만 바꿔서


여기서 만약에

a로 시작하는데

2글자인 문자열만

찾고 싶다면 어떻게

하면 될까요?


위의 b(boundaries)

의미를 조금 생각해보면

아래와 같이 하면 되겠죠?


\ba.\b




자 이번에는

마침표를 여러개?

써보겠습니다


굳이 마침표를 하나만

쓰라는 법은 없으니까요


마침표 여러개도 똑같습니다

a..


이렇게 표현식에 넣게 되면

a + 모든문자열 2개

이런 의미가 되겠죠?


아~

꼭 마침표를 뒤에만

쓸 필요는 없습니다

원하는 곳에 넣어주셔도

됩니다


.a.b.


이런식으로 써보면?


아래와 같이 match되겠죠?



자 여기까지 간단하게

정규표현식에서


마침표(.) 사용하는 법을

알아보았습니다.


사실 위에서 쓴 표현식들은

기본적인 것들이고..

다른 메타문자들과 혼합해서

사용한다면 훨씬 더 유용하게

사용할 수 있을겁니다.


다음글에서는 음

뭘 사용해보게 될지는 모르겠으나

[a-z] [0-9] 이런것들좀 써보고

+ 지금 사용해본 마침표와도

혼합해서 써보도록 하겠습니다


도움사이트 : http://regexr.com/


* 해당글에서 문제가 되는 부분이 있다면 즉시 삭제하겠습니다