我想提供以下的正則表達式作爲一個答案this question,但我似乎不能寫的正則表達式我一直在尋找:正則表達式 - 匹配縮寫一句話
w?o?r?d?p?r?e?s?s?
這應該與一個有序的單詞wordpress
的縮寫,但它也完全沒有匹配。
如何修改上述正則表達式以使它與匹配至少4個字符,以便?像:
- 字
- wrdp
- 按
- wordp
- wpress
- WordPress的
我想知道什麼是做到這一點的最好辦法。 .. =)
我想提供以下的正則表達式作爲一個答案this question,但我似乎不能寫的正則表達式我一直在尋找:正則表達式 - 匹配縮寫一句話
w?o?r?d?p?r?e?s?s?
這應該與一個有序的單詞wordpress
的縮寫,但它也完全沒有匹配。
如何修改上述正則表達式以使它與匹配至少4個字符,以便?像:
我想知道什麼是做到這一點的最好辦法。 .. =)
你可以使用一個前向斷言:
^(?=.{4})w?o?r?d?p?r?e?s?s?$
if (strlen($string) >= 4 && preg_match('#^w?o?r?d?p?r?e?s?s?$#', $string)) {
// abbreviation ok
}
這甚至不會運行正則表達式,除非該字符串是至少4個字符長。
我知道這是不是一個正則表達式,只是爲了好玩...
#!/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")
它似乎找不到像'wodr'這樣的縮寫。 – 2010-01-21 15:12:54
Alix它不完全清楚什麼縮寫是好的,哪些不是:爲什麼'wrdp'是和'wodr'否? – 2010-01-21 15:16:09
@kemp:對不起,他們都應該沒問題,因爲'r'出現了兩次。 'wodw'這個不應該匹配。對困惑感到抱歉。 – 2010-01-21 15:18:50