我正在考虑提供以下正则表达式作为这个问题的答案,但我似乎无法编写我正在寻找的正则表达式:
w?o?r?d?p?r?e?s?s?
这应该匹配单词的有序缩写wordpress
,但它也可以不匹配任何内容。
如何修改上述正则表达式以使其按顺序匹配至少 4 个字符?像:
- 单词
- wrdp
- 按
- 单词
- 压榨
- WordPress
我想知道最好的方法是什么... =)
我正在考虑提供以下正则表达式作为这个问题的答案,但我似乎无法编写我正在寻找的正则表达式:
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")