정규식을 배우기 시작했는데 알고 싶습니다. 어떤 경우에 사용하는 것이 더 낫습니다.정규식을 사용하는 것이 더 나은 사례는 무엇입니까?
답변
정규 표현식은 텍스트 콘텐츠에 적용 할 수있는 패턴 일치 형식입니다. 예를 들어 DOS 와일드 카드를 들으십니까? 파일을 검색 할 때 사용할 수있는 * 및 *. . 이는 RegExp의 매우 제한된 하위 집합의 일종입니다. 예를 들어, "fn"으로 시작하고, 1에서 4 개의 임의의 문자가 있고, "ht.txt"로 끝나는 모든 파일을 찾으려면 일반적인 DOS 와일드 카드로는 할 수 없습니다. RegExp는 다른 한편으로는 그보다 훨씬 복잡한 패턴을 처리 할 수 있습니다.
정규 표현식은, 짧은에, 효과적으로
- 핸들 데이터
- 검색 및 문자열
- 연장 제공 문자열 처리를 대체하는 방법입니다.
종종 정규 표현식 자체는 복잡한 함수 나 루프에서 사용하는 경우에만 내장 문자열 메서드 및 속성과 같은 다른 기능을 수행 할 수있는 문자열 처리 기능을 제공합니다.
복잡한 문자열 패턴을 찾고/바꾸거나 유효성을 검사하려고 할 때.
더 나은 성능이 필요한 경우 코드 작성을 위해 정규식을 사용하지 않아야하는 경우가 있습니다. 예를 들면 매우 큰 CSV 파일을 구문 분석하는 것입니다.
정규 표현식은 텍스트를 구문 분석하기위한 dsl (도메인 특정 언어)입니다. xpath와 마찬가지로 xml을 탐색하기위한 dsl입니다. 그것은 본질적으로 범용 언어의 내부에있는 아주 작은 언어입니다. 좁은 목적에 특화되어 있기 때문에 매우 적은 양의 코드로 꽤 많은 것을 성취 할 수 있습니다. 정규 표현식의 가장 일반적인 용도는 문자열이 이메일 주소, 전화 번호, ssn 등인지 확인하는 것입니다.
문자열 비교 (preg_match), 하위 문자열 대체 (sed, preg_replace), 바꾸기 문자 (sed, preg_replace), 파일에서 문자열 찾기 (grep), 문자열 분할 (preg_split) 등이 있습니다.
매우 유연하고 널리 사용되는 패턴 표현 언어이며 매우 유용합니다.
BUT! 포커에 대해 말하는 것처럼, 배우기는 매우 쉽지만 마스터하기는 매우 어렵습니다.
저는 방금 RegEx에 적합하다고 생각한 question을 보았습니다. 모양을 가지고 스스로 결정하십시오.
는 정규 표현식 있는 경우가 있습니다 >> NOT < < 적절한 (일반적으로, 항상 예외가 있습니다).
- 구문 분석 HTML
- 위의 경우에서 구문 분석 XML
는 DOM 파서는 거의 항상 더 나은 선택입니다. 문법은 복잡하며 중첩 된 태그와 같이 너무 많은 가장자리 경우가 있습니다.
향후 유지 보수 프로그래머 (사용자가 될 수도 있음)를 고려해야합니다. 댓글 및/또는 잘 선택된 메소드/상수/변수 이름은 특히 정규 표현식에 능통하지 않은 개발자에게 큰 변화를 가져올 수 있습니다.
정규식은 자유 텍스트 입력의 형식을 확인하는 데 특히 유용 할 수 있습니다. 물론 그들은 데이터의 정확성을 검증 할 수 없으며 형식 만 검증합니다. 또한 특정 유형의 값 (예 : 전화 번호 또는 우편 번호)에 대한 지역 변수를 염두에 두어야합니다. 그러나 유효한 입력을 텍스트 패턴으로 정의 할 수있는 경우 regexes를 사용하면 유효성 검사를 빠르게 수행 할 수 있습니다.
- 1. AS3에서 클래스를 사용하는 것이 더 나은 이유는 무엇입니까?
- 2. filter_input()을 사용하는 것이 더 나은 이유는 무엇입니까?
- 3. readonly 속성 절 기능을 사용하는 것이 더 나은 이유는 무엇입니까?
- 4. JDBC 드라이버를로드하는 것이 더 나은 방법은 무엇입니까?
- 5. 참조로 전달하는 것이 더 나은 이유는 무엇입니까?
- 6. 이렇게하는 것이 '더 나은 방법'입니까?
- 7. 사용하는 것보다 사용이 더 나은 이유는 무엇입니까?
- 8. 더 나은 디자인이란 무엇입니까?
- 9. 어느 것이 더 빠르고 더 나은 SQL 연습입니까?
- 10. 모델에 선택 상자를 사용하는 것이 얼마나 비싸며 모범 사례는 무엇입니까?
- 11. 정규식을 입력 유효성 검사에 사용하는 것이 좋습니다.
- 12. 다음 fsharp 코드를 작성하는 것이 더 나은 (더 기능적인 방식입니까?)?
- 13. 데이터베이스에서 큰 결과를 표시하는 것이 더 나은 방법은 무엇입니까?
- 14. PHP에서 XML을 구문 분석하는 것이 더 나은 방법은 무엇입니까?
- 15. 큰 주소 데이터베이스를 구성하는 것이 더 나은 방법은 무엇입니까?
- 16. 더 나은 성능과 더 나은 구조
- 17. 더 나은 URL을 사용하는 레일 양식
- 18. 아파치 commons fileupload 또는 O'reilly MulipartRequest를 사용하는 것이 더 낫습니다? 더 나은 다음에
- 19. 위임 메서드를 사용하는 대신 NSURLConnection을 사용하여 인증을 수행하는 것이 더 빠르고 더 나은 방법입니까?
- 20. 싱글 톤 패턴 - 더 나은 실천은 무엇입니까?
- 21. Javascript : 더 나은 코드/더 나은 디자인 도움말
- 22. 장고, 더 나은 국제화?
- 23. 서버를 작성하는 데 TCPClient를 사용해야합니까? 아니면 더 나은 것이 있습니까?
- 24. 기본 세션이 아닌 사용자 세션에 대해 테이블을 사용하는 것이 더 나은 시나리오는 무엇입니까?
- 25. 되풀이 작업에 사용하는 것이 더 나은 서비스 또는 예약 된 작업은 무엇입니까?
- 26. serialize()를 사용하는 것보다 json_encode()를 사용하는 것이 더 나은 시나리오입니까?
- 27. 더 나은 HBASE 또는 Neo4j
- 28. register_shutdown_function() - 모범 사례는 무엇입니까?
- 29. 이 중 어느 것이 더 나은 PHP 기능입니까?
- 30. 더 나은 데이터베이스 디자인?
+1 아주 좋은 비유! –