본문 바로가기
IT/IT 지식

정규표현식 특수문자 의미

by SidePower 2020. 9. 19.

(http|https|ftp|telnet):\/\/[^\" ' \s()]+

이게 도대체 뭐하는 문자인가요?

 

리눅스 환경을 처음 접할 때 알 수 없는 특수문자들과
암호 같은 문장들이 보였습니다.^^;;


바로 정규표현식인데요.

이걸 모르면 자유롭게 리눅스 가지고 놀수 없더라고요.


일하면서 자주 접하다 보니 그냥 그냥 알게 되거나
그때그때 잠깐씩 찾아보면서 익힌 거 같네요.


하루라도 빨리 알게 되면 리눅스 활용이 엄청 많아질 거예요.
하지만 사용법이나 공식처럼 외워야 되는 것도 있어
주로 사용하는 몇 개만 알고 나머지는 빨리 잊어버리게 되더라고요.^^;;

이번 포스팅하면서 그동안 알고 있던 거와 잊고 있었던 내용을 함께 정리하게 되어 무척 재밋게
하고 있는 거 같습니다.

정규표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용되는 형식언어라고 정의합니다.
쉘 , perl , c , c++ , java , python.. 등의
대부분이 언어에 라이브러리에 내장되어 있어
거의 사용되지 않는 곳이 없을 정도입니다.

제 생각은 간단하게 문자열을 찾기 위한 필터링하는 기술이라 생각합니다.


어떤 사람은 두세 줄이 원하는 문자열을 찾고
어떤 사람은 정규표현식으로 특수문자 몇 개 써서 한 줄에 찾아냅니다.
내공이 깊은 능력자들은 정규표현식에 능숙하죠.ㅋ

 

메타문자 설명
* * 앞에 문자가 0번 이상 모든 문자가 있을수 있음.  abc*d => abcd , abd , abcccccccd
+ + 앞에 문자가 1번 이상 모든 문자가 있을수 있음. abc*d => abcd , abcccccd , abd 는 안됩니다.
^ 문자열의 처음 , 시작 부분 , ^ab => abcdad , ab cmart 등 라인 시작 글자가 ab로 됨.
$ 문자열의 끝, 마지막 부분 , ab$ => ..hello ab , ..adagaab 등 라인 마지막 글자가 ab로 끝남.
? ? 앞에 문자가 0 번 또는 1번만 있을수 있음. lovv?e => love , lovve 
. 문자 한개 , ab.d => abcd , abkd , abGd 등 한개 문자 아무거나 됨.
[ ] 대괄호안에 문자중에서 한개만 선택. B[abc]K -> Bak or Bbk or Bck 중에 한개.
대괄호안에 - 가 있으면 범위를 의미 , a[0-3] -> a0 or a1 or a2 or a3 중에 한개. a-z A-Z 이런식으로 사용.
대괄호안에 ^는 NOT 의미임. a[^0-2] -> a0 도 아니고 a1 도 아니고 a2도 아닌 모든것. a3,a4 ... 
( ) 소괄호안을 그룹으로 지정. 틸드와 함께 사용해서 모두 포함됨. god|gkd 와 g(o|k)d는 같은 의미임.
| 틸드는 조건문에서 or와 같은 기능으로 여러개중 한개,  aa|bb => aa 또는 bb 둘다 포함됨.
{ } 문자 반복 시킨거와 일치
{n} : n 번 반복한거와 일치
{n,} : n 번 이상 반복한거와 일치
{n,,m} : n 번 이상 m 번 미만 반복한거와 일치
| 여러개중 한개 선택. abc|edb -> abc 또는 edb와 일치.

간단하게 의미만 기록했습니다.

 

다음에는 정규표현식 예제를 통해서 여러 가지 활용할 수 있도록 포스팅하겠습니다.

 

감사합니다.

반응형

댓글