[英]Regex - Matching Abbreviations of a Word
我當時在考慮提供以下正則表達式作為該問題的答案,但我似乎無法編寫所需的正則表達式:
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個字符,否則它甚至不會運行regexp。
我知道這不是正則表達式,只是為了好玩...
#!/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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.