프로그래밍/공통 | Posted by 반쪽세상지기 2011.01.20 11:24

[ Java ] 정규식이란 무엇인가.

정규식이란 무엇입니까?

Posix 정규식은 와일드카드와 메타 문자를 사용하여 입력란 내용의 일부를 찾거나 캡처하는 데 사용됩니다. 텍스트 조작 작업에 사용되는 경우도 있습니다. Google 웹로그 분석에 포함된 대부분의 필터는 정규식을 사용하여 데이터를 찾고 데이터가 일치되면 작업을 수행합니다. 예를 들어, 제외 필터는 해당 필터에 지정된 입력란의 데이터를 찾으면 해당 조회를 제외하도록 지정된 필터 정규식입니다.

정규식은 문자나 숫자, 와일드카드를 포함하는 텍스트 문자열로 구성되어 있습니다. 공용 와일드카드 목록은 아래 표와 같습니다. 백슬래시('\')를 사용하면 해당 와일드카드 문자를 일반 문자로 사용할 수 있습니다. 예를 들어, www.google.co.kr을 입력하는 경우 백슬래시를 사용하여 마침표를 다른 기능이 아닌 일반 마침표로 사용할 수 있습니다. www\.google\.co.kr


. 단일 문자를 찾습니다.
* 0개 이상의 이전 항목을 찾습니다.
+ 하나 이상의 이전 항목을 찾습니다.
? 0개 또는 하나의 이전 항목을 찾습니다.
() 괄호 안에 있는 콘텐츠를 항목으로 인식합니다.
[] 해당 목록에서 한 항목을 찾습니다.
- 목록에서 범위를 생성합니다.
| 또는
^ 입력란의 시작에 일치됩니다.
$ 입력란의 끝에 일치됩니다.
\ 위의 각 기능에서 벗어납니다(escape).

정규식을 위한 도움말

  1. 정규식은 가능한 간단하게 작성하십시오. 복잡한 연식은 간단한 연식에 비해 처리나 일치 작업이 오래 걸립니다.
  2. .*가 포함된 연식은 모든 패턴을 찾기 때문에 처리 속도를 저하시킬 수 있으므로 가능한 한 .*를 사용하지 않는 것이 좋습니다. 예를 들어, index.html을 찾아야 하는 경우 .*index\.html.* 대신 index\.html을 사용하십시오.
  3. 가능하면 패턴을 그룹화하십시오. 예를 들어, 파일 접미사나 .gif, .jpg 및 .png를 찾으려는 경우 \.gif|\.jpg|\.png 대신 \.(gif|jpg|png)를 사용할 수 있습니다.
  4. 일반 문자를 찾으려면 '\'를 사용하여 정규식 와일드카드 또는 메타 문자에서 벗어나야(escape) 합니다.
  5. 가능한 한 앵커를 사용하십시오. 앵커 문자로는 각 연식의 시작과 끝에 일치되는 ^ 및 $ 문자가 있습니다. 가능한 경우 이러한 문자를 사용하십시오. 처리 속도가 빨라집니다. 예를 들어, /abc/xyz의 abc 디렉토리를 찾으려는 경우 /abc/ 대신 ^/abc/를 사용할 수 있습니다. ^ 문자를 사용하면 각 디렉토리의 시작 부분만 찾으므로 처리 속도가 향상됩니다.
<구글 검색 자료>