2010-01-21 3 views
1

내가 this question에 대한 답변으로 다음과 같은 정규식을 제공하는 생각,하지만 난 내가 찾고있는 정규 표현식을 쓸 수없는 것 :정규식 -의 일치 약어 워드

w?o?r?d?p?r?e?s?s? 

이 일치해야합니다을 단어 wordpress의 정렬 된 약어이지만 전혀 일치하지 않을 수도 있습니다.

이 적어도 4 개의 문자와 일치하도록 위의 정규 표현식을 어떻게 수정할 수 있습니까? 마찬가지로 :

  • 단어
  • wrdp
  • 눌러
  • wordp
  • wpress 내가 이렇게하는 가장 좋은 방법이 무엇인지 알고 싶습니다
  • 워드 프레스

. .. =)

답변

5

당신은 내다 주장을 사용할 수 있습니다 긴.

+0

'wodr'과 같이 순서가 잘못된 약어를 ​​찾은 것 같습니다. –

+0

앨릭스 Alix는 어떤 약어가 괜찮고 어떤 것이 아닌지 명확하게 밝히지 않았습니다 : 왜'wrdp' yes와'wodr' no입니까? –

+0

@kemp : 죄송 합니다만, 'r'이 두 번 나타나기 때문에 둘 다 괜찮을 것입니다. 'wodw'이 일치해서는 안됩니다. 혼란을 드려 죄송합니다. –

2

Wh PHP 유사성 검사기 기능에 대해? 문자열이 최소 4 개 문자가 아닌이도 정규 표현식을 실행하지 않습니다

^(?=.{4})w?o?r?d?p?r?e?s?s?$ 
+0

니스 하나, 감사합니다! –

2
if (strlen($string) >= 4 && preg_match('#^w?o?r?d?p?r?e?s?s?$#', $string)) { 
    // abbreviation ok 
} 

:

0

난이 단지 재미를 위해,하지 정규식 알고 ...

#!/usr/bin/python 

FULLWORD = "wordprocess" 

def check_word(word): 
    i, j = 0, 0 
    while i < len(word) and j < len(FULLWORD): 
     if word[i] == FULLWORD[j]: 
      i += 1; j += 1 
     else: 
      j += 1 

    if j >= len(FULLWORD) or i < 4 or i >= len(FULLWORD): 
     return "%s: FAIL" % word 
    return "%s: SUCC" % word 

print check_word("wd") 
print check_word("wdps") 
print check_word("wsdp") 
print check_word("wordprocessr")