簡體   English   中英

正則表達式-單詞的匹配縮寫

[英]Regex - Matching Abbreviations of a Word

我當時在考慮提供以下正則表達式作為該問題的答案,但我似乎無法編寫所需的正則表達式:

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

這應該匹配單詞wordpress的有序縮寫,但是也不能匹配任何東西。

如何修改上面的正則表達式,以使其至少匹配4個字符 喜歡:

  • wrdp
  • 文字
  • press
  • WordPress的

我想知道什么是最好的方法... =)

您可以使用前瞻性斷言:

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

php相似性檢查器功能如何?

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM