2011-05-16 1 views
3

정규식을 사용하여 java의 문자열에서 날짜 및 기타 정보를 캡처하고 싶습니다. 내 패턴은 다음과 같이정규식에서 그룹으로 바깥 괄호 만 캡처하십시오.

I 그룹,

"((date_variation_1 | date_variation_2) (some_other_info)) " 

그리고 지금, 나는이 같은 일치하는 문자열을 추출 할,
GROUP0 - 전체 경기
그룹 1 - 날짜
그룹 2 - 기타 정보

내 문제는 date_variation_1, date_variation_2 및 some_other_info에서 괄호를 내부적으로 사용해야하며 이러한 괄호도 그룹 구분선으로 취급된다는 것입니다.

괄호 대신 외부 그룹 구분 기호로 다른 특수 전세를 정의 할 수 있습니까?

date_variation_1 :

"(((?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|Tues|Thur|Thurs|Sun|Mon|Tue|Wed|Thu|Fri|Sat))" // Day Of Week 1 
         + "(\\s+)" // White Space 1 
         + "((?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:(?:\\d{1}\\d{1})))(?![\\d])" // MMDDYY 1 
         + "(\\s+)" // White Space 2 
         + "((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?))"; // HourMinuteSec 1 
+0

또한 자바에서는 모든 것을 괄호로 묶지 않아도됩니다. 'group (0)'은 항상 전체 표현식과 일치하는 문자열을 얻습니다. –

+0

@ palo-ebermann 알아,하지만 바깥 괄호를 정규식의 특정 부분과 일치 시키길 원합니다. 그 부분에있는 괄호까지도 그룹으로 간주됩니다. 어쩌면 당신은 내 질문에 약간 오해했을 것입니다. – carloscloud

답변

5

당신은 비 캡처 그룹을 정의 (?:yourGroupHere)를 사용할 수 있습니다.

관련 문제