Python 如何在一个单词(s'cream)中扩展撇号?

Python 如何在一个单词(s'cream)中扩展撇号?,python,string,search,missing-symbols,Python,String,Search,Missing Symbols,这是我的词表。实际上,我使用的是一个大列表 banana fish scream screaming suncream suncreams 我想扩大冰淇淋的范围。它必须只搭配防晒霜 不匹配尖叫,因为撇号没有字符 与防晒霜不匹配,因为末端的s不清楚 我不是很好的编程,因为它只是匹配所有的单词 我试过的。这很尴尬。我不知道我在做什么 find = "s'cream" with open('words') as f: for line in f: wor

这是我的词表。实际上,我使用的是一个大列表

banana
fish
scream
screaming
suncream
suncreams
我想扩大冰淇淋的范围。它必须只搭配防晒霜

不匹配尖叫,因为撇号没有字符

与防晒霜不匹配,因为末端的s不清楚

我不是很好的编程,因为它只是匹配所有的单词

我试过的。这很尴尬。我不知道我在做什么

find = "s'cream"

with open('words') as f:
    for line in f:
        word = line.strip()
        skipchars = False
        for c in find:
            if c == "'":
                skipchars = True
                continue
            if skipchars:
                for w in word:
                    if c != w:
                        continue
            if c not in word:
                break
            skipchars = False
        print(word)
您可以使用更简单的正则表达式,将撇号替换为。+,这意味着

. 阿尼查尔 +一次或多次 您可以使用更简单的正则表达式,将撇号替换为。+,这意味着

. 阿尼查尔 +一次或多次
使用正则表达式很容易:

使用\w+的选择是与单词字符(如字母)匹配,并且至少需要映射1个字符

进口稀土 寻找奶油 单词=[ 香蕉 鱼 尖叫 尖叫, 防晒霜, 防晒霜 ] target_re=re.compile^{}$.formatfind.replace',\w+ 用文字表示: 如果目标匹配词: 打印匹配:,字 其他: 打印不匹配:,word 输出: 不是一根火柴:香蕉 不是火柴:鱼 不匹配:尖叫 不匹配:尖叫 搭配:防晒霜 不相配:防晒霜
使用正则表达式很容易:

使用\w+的选择是与单词字符(如字母)匹配,并且至少需要映射1个字符

进口稀土 寻找奶油 单词=[ 香蕉 鱼 尖叫 尖叫, 防晒霜, 防晒霜 ] target_re=re.compile^{}$.formatfind.replace',\w+ 用文字表示: 如果目标匹配词: 打印匹配:,字 其他: 打印不匹配:,word 输出: 不是一根火柴:香蕉 不是火柴:鱼 不匹配:尖叫 不匹配:尖叫 搭配:防晒霜 不相配:防晒霜
我将选择这个答案,因为这个模式没有太多模糊的字符。上面说我需要等待一段时间才能接受答案。好吧,我想让我们看看是否有人写了其他东西。“但这肯定是一个好答案。”内森·布隆德我不知道,你去找找看吧;我将选择这个答案,因为这个模式没有太多模糊的字符。上面说我需要等待一段时间才能接受答案。好吧,我想让我们看看是否有人写了其他东西。“但这肯定是一个好答案。”内森·布隆德我不知道,你去找找看吧;
import re

words = ['banana', 'fish', 'scream', 'screaming', 'suncream', 'suncreams']

find = "s'cream"
pattern = re.compile(find.replace("'", ".+"))

for word in words:
    if pattern.fullmatch(word):
        print(word)