2015-01-21 2 views
1

다음 규칙에 문제가 있습니다
(1) 'a'로 시작하고 'd'로 끝나는 단어를 모두 찾으십시오. 그러한 단어 중 가장 긴 단어를 표시하십시오. 그것을 위해
내 정규식이이 문장의 정규 표현식은 무엇입니까

^a[a-zA-Z]+d$ 

하지만 내가 어떻게 그들로부터 최장 찾을 잘 모릅니다 ...?

(2) 짝수와 홀수의 카운트 수는 별도로 또한 홀수와 짝수 중 가장 긴 숫자를 표시합니다.
나는 홀수가

[13579] 

입니다 들어 RE를 확인해야하고 스캔 프로그램을해야 할 것이다, 그래서 심지어 위해,

[02468] 
+0

무엇이 맞나요? @AvinashRaj ... –

+0

하지만 https://regex101.com/r/fM9gS2/7처럼 정의 할 수 있습니다. –

+0

@AvinashRaj 왜 안 되니? 홀수는 홀수로 끝나고 짝수는 짝수로 끝납니다. 앞에 오는 숫자가 무엇이든 상관 없습니다. – dasblinkenlight

답변

3

정규식 가장 긴 문자열을 선택할 수있을만큼 강력하지입니다 텍스트를 정규 표현식과 함께 사용하고 가장 긴 일치를 선택합니다.

첫 번째 정규 표현식은 거의 좋은 - *+ 교체 a에서 시작 d이 포착되지 않을 것이다 끝나는 다른 단어 ad (또한 (양쪽에 \b\b 수단을 ^$ 앵커 교체 ". . 당신이 일치하는 반복적으로 텍스트를 스캔

를 원하기 때문에 단어 경계 ")는 두 번째 정규식은 다음과 같이해야합니다 :

\b[0-9]*[13579]\b // << Odd numbers 
\b[0-9]*[02468]\b // << Even numbers 

다시 말하지만,이 정규 표현식을 사용하여 텍스트를 스캔하고 가장 길게 일치하는 내용을 저장하고 검색중인 텍스트의 끝에 도달하면 인쇄하십시오.

+0

당신은 이런 말을하는 것을 의미합니다. \ ba [a-zA-Z] * d \ b @ dasblinkenlight –

+0

@AvinashRaj 위의 u는 내가 사용하는 말은 ri8입니다 .... –

+0

@UsamaLucky 네, 어떤 실패라도 제공 할 수 있겠습니까? (홀수 또는 짝수에 대해 말하기) –