2010-04-07 5 views
29

정규식 전문가는 아니지만 요청이 간단합니다. 일치하는 문자가 3 자 이상인 문자열을 일치시켜야합니다.정규식을 사용하여 모든 문자열을 일치 시키려면 어떻게해야합니까? 3 자 이상?

그래서 예를 들어, 우리는 문자열에 "Hello World"를 다음과 일치 있습니다.

"he" => false // only 2 characters 
"hel" => true // 3 characters match found 
+4

3 개 이상 chara 문자열이나 특정 위치에서 어디서나 cters? 말 그대로 "임의의 3 문자"가 일치하는 경우 3 자 이상의 길이의 문자열이 일치하지 않습니까? 그냥 문자열 길이를 가져 가라. – dawg

+1

'hwd'는 true 또는 false를 어떻게 할까? – kennytm

+1

"o w"또는 "ell"은 어떻습니까? –

답변

8

이 시도를 {3}이 새로운 라인 (\ n을)를 제외한 모든 characher 일치합니다

1

간단한 3 도트로 시도해 볼 수 있습니다. 아래 펄의 코드를 참조

$ A = ~ m /.../ #where $ A 이것은 파이썬 정규식 당신의 문자열

39

이지만, 아마 구현 다른 언어로 작동 그것도.

나는 캐릭터가 무엇이라고 생각 하느냐에 달려 있다고 생각합니다. 그것은 문자, 숫자, 그리고 밑줄 경우

\w{3,} 

경우 단지 문자와 숫자 :

파이썬은 또한 문자열에서 모든 일치를 반환하는 정규 표현식 메소드가
[a-zA-Z0-9]{3,} 

. .NET 사용에 대한

>>> import re 
>>> re.findall(r'\w{3,}', 'This is a long string, yes it is.') 
['This', 'long', 'string', 'yes'] 
+0

예, OP가 묻는 질문과 완전히 다른 질문에 답했습니다.Paxdiablo의 솔루션을 읽은 후에 그것은 의미가있었습니다. –

+1

그러나 이것은 완전히 내 질문이었습니다. 답변 해 주셔서 감사합니다! – kiminoa

2

당신은 단어의 시작부터 일치 할 경우, 사용 :

\b\w{3,} 

\ b : 단어 경계

\ w : 단어 문자

{3} : 단어 문자에 대해 세 번 이상

1

주제 첫 번째 게시물과 유사하게 시도했습니다. 내 요구를 들어

는 난 단지

"iokldöajf ASDASD kja wwda 다 ednm AIJ < .jkakla을 alkjwnkmd"이

http://answers.oreilly.com/topic/217-how-to-match-whole-words-with-a-regular-expression/

"\b[a-zA-Z0-9]{3}\b" 

3 문자의 단어를 찾을

+0

질문 아래의 주석을보십시오 : "답변자에게 :. {3의 변형}은 OP가 원하는 것이 아닙니다." –

+1

그러나 어쨌든 질문에 대답하지 않습니다. 최소 3 자 이상이어야하는 검색 표현식 자체입니다. 예를 들어 사용자가 검색 대화 상자에 입력하는 경우 적어도 세자를 입력 할 때까지 일치를 강조 표시해서는 안됩니다. OP는 모든 단어에 대해 아무 말도하지 않았습니다. –

관련 문제