정규 표현 식 과 어댑터

정규 표현 식 과 어댑터
정규 표현 식 과 마스크 는 헷 갈 리 기 쉬 운 두 개념 으로 마스크 (wildcard) 는 보통 Bash 조작 인터페이스의 한 기능 을 대표 하지만 정규 표현 법 은 문자열 처리 의 표현 방식 이다.
1. 정규 표현 식
정규 표현법 은 문자열 을 처리 하 는 방법 이다. 그 는 행위 단위 로 문자열 을 처리 하 는 행위 이다. 정규 표현법 은 일부 특수 기호의 보 조 를 통 해 사용자 가 특정한 문자열 의 처리 프로그램 에 쉽게 도달 할 수 있 도록 한다.
Notepad + + 또는 VIM 편집기 에서 다음 텍스트 문 서 를 사용 하여 실험 할 수 있 습 니 다. 본 고 는 Bash 의 grep 명령 을 사용 합 니 다.
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh!	My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world  is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird

기호.
묘사 하 다.
^word
의미: 찾 을 문자열 (word) 이 줄 위 에 있 습 니 다!범례: 줄 의 첫 번 째 줄 을 찾 고 줄 번호 grep -n '^#' regular_express.txt 를 표시 합 니 다.
word$
의미: 찾 아야 할 문자열 (word) 의 줄 범례: 줄 끝 을!의 줄 을 인쇄 하고 줄 번 호 를 표시 합 니 다 grep -n '!$' regular_express.txt.
의미: "임의의 문자 가 있 을 것 입 니 다" 를 의미 하 는 문자 입 니 다!범례: 찾 은 문자열 은 (eve) (eae) (eee) (e) 일 수 있 지만 (ee) 만 있 을 수 없습니다!즉, e 와 e 사이 의 '일정' 은 한 글자 만 있 고 빈 칸 도 문자 입 니 다!grep -n 'e.e' regular_express.txt
\
의미: 전의 문자, 특수 기호의 특수 한 의 미 를 제거 합 니 다!범례: 작은 따옴표 가 있 는 줄 을 찾 아 라!grep -n \' regular_express.txt
*
의미: 0 개 에서 무한 개 까지 반복 되 는 이전 RE 문자 범례: (es) (ess) (esss) 등 이 포 함 된 문자열 을 찾 습 니 다. 주의 하 십시오. * 0 개 일 수 있 기 때문에 es 도 c 검색 문자열 에 부합 합 니 다.또한 * '앞의 RE 문자' 를 반복 하 는 기호 이기 때문에 * 전에 RE 문자 가 붙 어야 합 니 다!예 를 들 어 임의의 문 자 는 '*' 입 니 다!grep -n 'ess*' regular_express.txt
[list]
의미: 문자 집합의 RE 문자 입 니 다. 캡 처 하고 자 하 는 문 자 를 보 여 줍 니 다!범례: (gl) 또는 (gd) 가 함 유 된 줄 을 찾 습 니 다. 특히 주의해 야 할 것 은 [] 에서 '삼가 찾 아야 할 문 자 를 대표 합 니 다' 입 니 다. 예 를 들 어 'a [afl] y' 는 aay, afy, aly 즉 [afl] 이 a 또는 f 또는 l 을 대표 하 는 문자열 일 수 있 습 니 다!grep -n 'g[ld]' regular_express.txt
[n1-n2]
의미: 문자 집합 RE 문자 입 니 다. 캡 처 할 문자 범 위 를 보 여 줍 니 다!범례: c 는 임의의 숫자 가 함 유 된 줄 을 찾 습 니 다!문자 집합 [] 에서 의 감호 - 특별한 의미 가 있 습 니 다. 그 는 두 글자 사이 의 모든 연속 문 자 를 대표 합 니 다!그러나 이 연속 여 부 는 ASCII 인 코딩 과 관련 이 있 기 때문에 인 코딩 을 정확하게 설정 해 야 합 니 다 (bash 에서 LANG 와 LANGUAGE 의 변수 가 정확 한 지 확인 해 야 합 니 다!) 예 를 들 어 모든 대문자 문 자 는 [A - Z] grep -n '[A-Z]' regular_express.txt 입 니 다.
[^list]
의미: 문자 집합 RE 문자 입 니 다. 원 하지 않 는 문자열 이나 범 위 를 보 여 줍 니 다!범례: c 에서 찾 은 문자열 은 (oog) (ood) 일 수 있 지만 (oot) 일 수 없습니다.예 를 들 어 대문자 로 쓰 지 않 겠 습 니 다. [^ A - Z] 입 니 다.하지만 특히 주의해 야 할 것 은 grep - n [^ A - Z] regularexpress. txt 에서 c 를 찾 았 는데 이 파일 의 모든 줄 이 열거 되 어 있 는 것 을 발 견 했 습 니 다. 왜 요?이 [^ A - Z] 는 '대문자 가 아 닌 문자' 라 는 뜻 이기 때문에 줄 마다 대문자 가 아 닙 니 다. 예 를 들 어 첫 줄 의 'Open Source' 는 p, e, n, o... 등 소문 자 grep -n 'oo[^t]' regular_express.txt 가 있 기 때 문 입 니 다.
{n,m}
의미: n 에서 m 까지 연속 되 는 '이전 RE 문자' 의미: {n} 이면 n 개 이상 연속 되 는 이전 RE 문자 의미: {n,} 이면 n 개 이상 연속 되 는 이전 RE 문자 입 니 다!범례: g 와 g 사이 에 2 개 에서 3 개의 o 가 존재 하 는 문자열, 즉 (goog) (gooog) grep -n 'go\{2,3\}g' regular_express.txt2. 마스크
bash 의 조작 환경 에서 매우 유용 한 기능 이 있 습 니 다. 바로 마스크 (wildcard) 입 니 다!우 리 는 bash 를 이용 하여 데 이 터 를 처리 하 는 것 이 더욱 편리 하 다!다음 에 우 리 는 자주 사용 하 는 마스크 를 보 여 줍 니 다.
표현 식
묘사 하 다.
*
0 개 에서 무한 여러 개의 임 의 문 자 를 대표 합 니 다.
?
대표 님, 임의의 문자 가 있 을 거 예요.
[]
괄호 안에 있 는 문자 가 있 을 것 입 니 다.예 를 들 어 [abcd] 는 '반드시 한 글자 가 있 습 니 다. a, b, c, d 라 는 네 개의 모든 문자 일 수 있 습 니 다' 를 대표 합 니 다.
[ - ]
괄호 안에 마이너스 가 있 으 면 '인 코딩 순서 에 있 는 모든 문자' 를 의미 합 니 다.예 를 들 어 [0 - 9] 는 0 에서 9 사이 의 모든 숫자 를 대표 합 니 다. 왜냐하면 숫자의 어족 인 코딩 은 연속 적 이기 때 문 입 니 다!
[^ ]
만약 에 괄호 안의 첫 번 째 문자 가 지수 기호 (^) 라면 '역방향 선택' 을 나타 낸다. 예 를 들 어 [^ abc] 은 반드시 한 글자 가 있 고 a, b, c 의 다른 문자 가 아니면 받 아들 이 겠 다 는 뜻 이다.
3. 소결
다시 강조: "정규 표현법 의 특수 문자" 는 일반적으로 명령 열 에 명령 을 입력 하 는 "마스크" 와 같 지 않 습 니 다. 예 를 들 어 마스크 에 있 는 것 과 같 습 니 다. * '0 ~ 무한 여러 글자' 라 는 뜻 이지 만 정규 표현법 에 서 는 '무한 여러 글자 로 반복 되 는 앞의 RE 문자' 라 는 뜻 입 니 다 ~ 사용 하 는 의미 가 다 르 니 헷 갈 리 지 마 세 요!예 를 들 어 정규 표현법 을 지원 하지 않 는 ls 라 는 도구 에서 만약 에 우리 가 ls -l * 를 사용 하 는 것 이 임의의 파일 이름 을 대표 하 는 파일 이 고 ls -l a* 는 a 를 시작 으로 하 는 모든 파일 이름 을 대표 하 는 파일 이지 만 정규 표현법 에서 a 를 시작 으로 하 는 파일 을 찾 으 려 면 반드시 이렇게 해 야 한다. (정규 표현법 을 지원 하 는 도 구 를 조합 해 야 한다) ls | grep -n '^a.*'정규 표현 식 과 마스크 는 많은 응용 장면 이 있 습 니 다. 일반적으로 정규 표현 식 의 용법 은 자바 스 크 립 트 에서 자바 나 리 눅 스 의 Bash 명령 에서 정규 표현 법 은 기본적으로 같 지만 마스크 를 사용 할 때 구분 하 는 것 이 좋 습 니 다.예 를 들 어 Spring 의 XML 설정 파일 의 어댑터 사용법 이 반드시 Linux 와 일치 하 는 것 은 아 닙 니 다.
  • 어댑터 의 흔 한 장면: 1.1. Spring 프로필 1.2. Linux 의 bash 환경
  • 정규 표현 식: 2.1. JS 의 필드 검사 2.2. 텍스트 편집기 (VIM) 의 검색 교체 2.3. 메 일 서버 의 필터 스 팸 메 일 2.4. 운영 엔지니어 가 시스템 로그 검색 과 선별
  • [참고] [1]: < 새 형의 리 눅 스 개인 요리 >

    좋은 웹페이지 즐겨찾기