2009-12-29 7 views
6

은 정규 표현식 언어간에 동일합니까?정규식 - 모든 언어에서 동일합니까?

예를 들면. 만약 내가 자바 스크립트에서 그것을 사용하고 싶다면, 나는 자바 스크립트를 위해 regexp를 구체적으로 검색해야만 할 것이다. 내가 치트 시트를 가지고있어. 그것은 단지 정규식을 말합니다.

나는 모든 언어, PHP, 자바 스크립트 등에 이것을 사용할 수 있는지 궁금해.

답변

9

기본 사항은 거의 동일하지만 PHP가 PCRE (Perl Compatible Regular Expressions)를 사용하기 때문에 엔진의 언어, PHP 및 JavaScript가 서로 다른 일부 불일치가 있습니다.

PHP에도 POSIX 호환 정규식 엔진 (ereg_ * functions)이 있지만 더 이상 사용되지 않습니다.

아직 사용하지 않은 경우 RegexBuddy을 사용해 보시기 바랍니다. 그것은 여러 Regex 엔진 사이에서 변환 할 수 있습니다.

alternatives for RegexBuddy on Mac here을 찾을 수 있습니다.

+0

하지만 그 중 하나는 Windows 용입니다.맥에 메신저 – ajsie

+0

여기를 확인 : http://alternativeto.net/desktop/regexbuddy/ –

1

정규 표현식 synax는 언어마다 약간 씩 다르지만 대부분 대부분 세부 사항이 동일합니다. 일부 정규식 구현은 특정 특수 문자 시퀀스가 ​​의미하는 것뿐만 아니라 처리 방법에 약간 다른 변형을 지원합니다.

Google은 가장 친한 친구입니다. Google은 귀하가 선택한 언어로 정규식을 제공합니다.

2

here으로 시작하는 것이 좋습니다. 그것은 내가 정규식을 할 때 내 성경입니다!

이제 정규 표현식은 정규식과 동일해야하지만 컴파일러와 컴파일러 (또는 통역사)가 다른 경우가 있습니다.

특정 패턴을 검색하는 방법은 다음과 같습니다. \w을 예로 들어 보겠습니다. seach for a word은 C#이지만 자바 스크립트의 패턴은 다를 수 있습니다.

이와 같은 특별한 경우에는 위에 제공된 링크를 수정해야 할 수 있습니다.

+1

설명을 위해 Regex 인터프리터에서 \ w는 전체 단어가 아닌 ** 문자 ** (영숫자 및 밑줄 문자)를 찾습니다. – BraedenP

+0

아. 당신은 정확합니다 선생님! –

0

정규 표현식의 가장 큰 변형 중 하나는 특수 문자가 이스케이프/해석되는 방법입니다.

예를 들어, grep, vim 및 perl 정규 표현식은 검색에서 역 참조를위한 패턴을 그룹화/캡처하는 방법이 다릅니다 (&). IIRC, Perl은 grep 및 vim이 이스케이프 처리해야 할 때 바로 사용합니다.

또한 Perl 정규 표현식은 이전 정규 표현 엔진보다 많은 기능을 지원할 수 있습니다. Perl에서 간단했을 정규 ​​표현식은 grep의 주요 피타 (Pita)였다.

이것이 합법적 인 올바른 방법인지는 확실치 않지만 Posix (grep 및 유사한 도구)와 Perl 호환 (사소한 변형 포함)의 두 가지 주요 클래스가 기본적으로 있습니다.

유용한 도구 중 하나는 The Regex Coach - interactive regular expressions입니다.

관련 문제