2009-11-07 2 views

답변

7

정규 표현식은 텍스트 콘텐츠에 적용 할 수있는 패턴 일치 형식입니다. 예를 들어 DOS 와일드 카드를 들으십니까? 파일을 검색 할 때 사용할 수있는 * 및 *. . 이는 RegExp의 매우 제한된 하위 집합의 일종입니다. 예를 들어, "fn"으로 시작하고, 1에서 4 개의 임의의 문자가 있고, "ht.txt"로 끝나는 모든 파일을 찾으려면 일반적인 DOS 와일드 카드로는 할 수 없습니다. RegExp는 다른 한편으로는 그보다 훨씬 복잡한 패턴을 처리 할 수 ​​있습니다.

정규 표현식은, 짧은에, 효과적으로

  • 핸들 데이터
  • 검색 및 문자열
  • 연장 제공 문자열 처리를 대체하는 방법입니다.

종종 정규 표현식 자체는 복잡한 함수 나 루프에서 사용하는 경우에만 내장 문자열 메서드 및 속성과 같은 다른 기능을 수행 할 수있는 문자열 처리 기능을 제공합니다.

+0

+1 아주 좋은 비유! –

4

복잡한 문자열 패턴을 찾고/바꾸거나 유효성을 검사하려고 할 때.

2

더 나은 성능이 필요한 경우 코드 작성을 위해 정규식을 사용하지 않아야하는 경우가 있습니다. 예를 들면 매우 큰 CSV 파일을 구문 분석하는 것입니다.

2

정규 표현식은 텍스트를 구문 분석하기위한 dsl (도메인 특정 언어)입니다. xpath와 마찬가지로 xml을 탐색하기위한 dsl입니다. 그것은 본질적으로 범용 언어의 내부에있는 아주 작은 언어입니다. 좁은 목적에 특화되어 있기 때문에 매우 적은 양의 코드로 꽤 많은 것을 성취 할 수 있습니다. 정규 표현식의 가장 일반적인 용도는 문자열이 이메일 주소, 전화 번호, ssn 등인지 확인하는 것입니다.

4

문자열 비교 (preg_match), 하위 문자열 대체 (sed, preg_replace), 바꾸기 문자 (sed, preg_replace), 파일에서 문자열 찾기 (grep), 문자열 분할 (preg_split) 등이 있습니다.

매우 유연하고 널리 사용되는 패턴 표현 언어이며 매우 유용합니다.

BUT! 포커에 대해 말하는 것처럼, 배우기는 매우 쉽지만 마스터하기는 매우 어렵습니다.

저는 방금 RegEx에 적합하다고 생각한 question을 보았습니다. 모양을 가지고 스스로 결정하십시오.

2

는 정규 표현식 있는 경우가 있습니다 >> NOT < < 적절한 (일반적으로, 항상 예외가 있습니다).

  • 구문 분석 HTML
  • 위의 경우에서 구문 분석 XML

는 DOM 파서는 거의 항상 더 나은 선택입니다. 문법은 복잡하며 중첩 된 태그와 같이 너무 많은 가장자리 경우가 있습니다.

향후 유지 보수 프로그래머 (사용자가 될 수도 있음)를 고려해야합니다. 댓글 및/또는 잘 선택된 메소드/상수/변수 이름은 특히 정규 표현식에 능통하지 않은 개발자에게 큰 변화를 가져올 수 있습니다.

+0

거기에 "not"라는 단어에 중점을 두어야합니다. 스캐닝 중에는 html과 xml에 대한 regexes 사용을지지한다고 생각했습니다. – Kris

+0

@Kris : 더 많은 cowbell 추가! ;) – TrueWill

0

정규식은 자유 텍스트 입력의 형식을 확인하는 데 특히 유용 할 수 있습니다. 물론 그들은 데이터의 정확성을 검증 할 수 없으며 형식 만 검증합니다. 또한 특정 유형의 값 (예 : 전화 번호 또는 우편 번호)에 대한 지역 변수를 염두에 두어야합니다. 그러나 유효한 입력을 텍스트 패턴으로 정의 할 수있는 경우 regexes를 사용하면 유효성 검사를 빠르게 수행 할 수 있습니다.

관련 문제