2011-08-23 3 views
0

주어진 문자열에 단어 집합이 있는지 확인하는 정규식을 작성하려면 어떻게해야합니까?주어진 문자열에 단어 집합이 존재하는지 확인하는 정규식을 만드는 방법은 무엇입니까?

예를 들어, 도메인 이름 끝에 "yahoo.com"이 포함되어 있는지 확인하고 싶습니다.

'answers.yahoo.com'이 유효합니다.
'yahoo.com.answers'가 잘못되었습니다. 'yahoo.com'이 끝나야합니다.

어딘가에서 힌트를 얻었습니다.

"/^[^yahoo.com]$/" 

하지만 저는 완전히 정규식입니다. 그러니 이걸로 제발 도와주세요. 그러면 더 배울 수 있습니다.

+0

특정 시퀀스를 확인하려면 하나의 정규 표현식으로 충분합니다. 진정으로 모든 단어 집합을 확인하려면 해당 정규 표현식을 반복해야합니다. 그래도 질문에 대한 설명이 필요합니다. 또한 regex를 사용하여 유효한 도메인 이름을 확인하는 것은 쓸모없는 것처럼 보입니다. DNS를 사용하는 유일한 방법은 DNS 쿼리입니다. – tripleee

+1

이 정규 표현식을 원하는 언어는 무엇입니까? – anubhava

+0

'^ (yahoo \ .com) $'정규 표현식은'^'행 다음에 리터럴 문자열'yahoo.com '을 찾습니다 (이 경우 괄호는 불필요합니다. 대괄호가 아닌 둥근 괄호 여야 함)'$'줄로 끝나야합니다. 이 문자열 앞에 아무것도없는 문자열이 있는지 확인하려면'^'행 시작 부분을 버리십시오. 이 경우 정규식은 예 : 'aaayahoo.com'. 그러나 귀하의 질문이 이해 될 때까지이 질문에 맡기십시오. – tripleee

답변

1

정규식 질문을 할 때 항상 언어 또는 응용 프로그램을 지정하십시오!

내 기록에서 보면 JavaScript/jQuery가 가장 가능성이 높습니다.

어쨌든, 문자열 JS 코드에서 /.*yahoo\.com$/i

을 사용하여 "yahoo.com"로 끝나는하는지 테스트하려면 :

if (/.*yahoo\.com$/i.test (YOUR_STR)) { 
    //-- It's good. 
} 


단어의 집합이 적어도 하나의 일치가 있는지 여부를 테스트하려면 사용 :

/word_one|word_two|word_three/ 


이 일치를 제한하기 위해 그냥 가장 일반적인 법률 하위 "yahoo.com"로 끝나는 도메인은 사용 :

/^(\w+\.)+yahoo\.com$/ 

다른 순열 들어

(원유, 첫 번째 패스로) 질문을 명확히하십시오.

+0

'. *'의 시작은 불필요합니다. – tripleee

+0

@ tripleee, 그것은 단지 * 문자열을 테스트 할 때 * 불필요합니다. 그러나 정규 표현식이 추출이나 치환으로 진화하면 그와 같은 것이 종종 필요합니다. –

+0

나는 이것을 시도했다.'/^([A-Za-z0-9] +.) + yahoo.com $ /'거의 맞습니다. 그러나 나는 이해하지 못한다. 그것은 'a % v.ab.yahoo.com'과 같은 오류를 감지하지 못한다.이제'a % .ab.yahoo.com'에서 오류를 감지합니다. 그러나 그 다음에 다른 문자를 추가하면 해당 문자열이 올바른 것으로 전달됩니다! 그 정규식에서 무슨 일 이니? – Shades88

관련 문제