Python 中的通配符
通配符是一种可以用来代替或补充一个或多个字符的符号。在计算机程序、语言、搜索引擎和操作系统中,通配符被用来压缩搜索条件。问号(?)和星号(*)是最常见的通配符。
通配符类型
星号(*)
星号(*)或字符 * 可用于指定任意数量的字符。星号 * 通常用于单词的结尾,并且需要查找具有各种可能的结尾的单词时使用。
例如,以单词“game”为例,短语“gamer”和“games”将出现在所有搜索结果中。根据搜索参数和其他单词,除了这两个单词之外可能会有其他单词。
问号(?)
问号或字符 ? 表示一个字符。它可以与根单词中的任何字母一起使用。当一个单词包含多个其他拼写形式时,使用问号运算符可以加快处理速度。
对于单个字符表示,不使用问号通配符,而使用点或.字符。
以单词“honour”为例。 在这种情况下,它会将结果标记为“honour”,但会忽略“honor”。
Python 中的通配符搜索
要在 Python 中使用通配符搜索,必须将 re 库包括在程序中。用于在 Python 中处理正则表达式的库称为 re 库,它是 Regular Expression 的缩写。
要进行搜索,我们将编译一个单词列表,然后使用 re 库函数。通过通配符的帮助,我们将找到与正确单词匹配的结果。
以下是执行通配符搜索的 Python 代码。
import re
str = re.compile('hel.o')
a = ['hello', 'welcome', 'to', 'java', 'point']
match_is = [string for string in a if re.match_is(str, string)]
print(match_is)
输出 :
['hello']
实现方法:
使用正则表达式模块 re,我们可以在 Python 中实现通配符。
点.与问号?这里被替换成了字符?。
import re
# To change the outcomes, add or remove terms from this list.
words = ["color", "colour", "work", "working",
"apple", "master", "driving"]
for word in words:
# Instead of the? symbol, use the . symbol
if re.search('col.r', word) :
print (word)
输出 :
color
就像星号(*)符号的使用方式一样,.+字符用于匹配一个或多个字符。因此,在 Python 中,我们的正则表达式代码可能如下所示,以查找所有以根词“work”开头的单词:
import re
# To change the outcomes, add or remove terms from this list.
words = ["car", "apple", "work", "working",
"goat", "worker"]
for word in words:
# Instead of using the * symbol, use the.+ symbol.
if re.search('work.+', word) :
print (word)
输出 :
working
worker