2016-06-30 5 views
1

나는 어떤 종류의 텍스트가 다음 정규식과 일치하는지 알아 내려고 노력하고 있지만 일치하는 것을 찾을 수 없습니다.이 정규식과 일치하는 텍스트는 무엇입니까?

^(\d{3}-){2}\d{4}$ 

(111-)(111-)4444 

가 일치하지 않습니다이 문자열.

는 I는 괄호 사이의 3 자리와 단부에서 마이너스해야한다고 생각하고,이 전체 표현은 4 자리 수에 따라, 회 반복.

내 생각이 잘못 되었나요?

+1

괄호와 일치하지 않으며 정규식 구문의 일부입니다. 그래서'111-111-4444'가 일치 할 것입니다. – nnnnnn

+0

'555-555-5555'이 일치해야합니다 http://www.regexplained.co.uk/?pattern=%5E(%5Cd%7B3%7D-)%7B2%7D%5Cd%7B4%7D%24 –

답변

2

괄호는 정규식 메타 문자입니다. 리터럴 괄호와 일치 시키려면 많은 정규식 방언에서 백 슬래시 이스케이프 처리해야합니다.

^(\(\d{3}-\)){2}\d{4}$ 

맨 괄호가 일치하지 않습니다. 그것은 그룹화 및 캡처에 사용됩니다. 예를 들어 ^(a|b)$a 또는 b과 일치합니다. 괄호는 변경 |을 그룹화하여 괄호 안의 항목이 괄호 그룹의 어느 표현식과 일치하는지에 관계없이 필요합니다. 마찬가지로 위의 경우 이스케이프 처리되지 않은 괄호는 {2}이 반복하는 것을 제어합니다 (그룹이 없으면 간단히 최종 \)을 반복합니다).

언어가 캡처 그룹 인 경우 $1 또는 \1 또는 m.group(1) 또는 무엇이든 부르면 첫 번째 괄호 안에 포함됩니다.

+0

답변 해 주셔서 감사 드리며, 내가 뭘 잘못했는지 이해하는 데 도움이되었습니다. 인사말 – Kouen

2

대괄호는 리터럴 그룹이 아닌 정규식 그룹입니다. 일치 항목 :

111-111-4444 

Regex101의 example을 참조하십시오.

+0

나는 당신이 "괄호"대신 "괄호"를 의미한다고 생각합니다. –

+0

@ ll Lill it '지역 일입니다. 예 : http://english.stackexchange.com/questions/14252/what-is-the-common-name-for-brackets-braces-and-parentheses – Blorgbeard

+0

아! 그 점을 지적 해 주셔서 감사합니다. 저는 잘 모릅니다. –

0

체크 아웃 https://regex101.com 당신이 당신의 정규 표현식에를 테스트하려는 경우.

의 \ D는 숫자이고 아무것도 0, 1,2,3 ..., 9 일 수있다.

는 {3} 디지트 정확히 3 명 발생, 수단. 그래서 등 143, 768,

344-644-2319은 정규식 일치합니다.

+0

답변 해 주셔서 감사합니다. 나는 정규식을 가진 초보자이며 프로그래밍을 쉽게 만드는 사이트에 대해 알지 못했습니다. 인사말. – Kouen

관련 문제