python - 如何使用 ”。” 作为“字符串”中的通配符而不是模式?
问题描述
我有这个:
incompleted_string1 = "Thom"
incompleted_string2 = "s Mueller naive"
entire_string = 'Thom.s Mueller naive' # <= dot means any char!!! I dont know which char is it
pattern = "mas M"
我想知道整个字符串中是否存在“mas M”。我不在乎是否"."
等于“a”或其他东西。我无法更改模式字符串!
re.findall("mas M", entire_string)
这个回报[]
我想拥有"mas M"
但True
就足够了
谢谢您的帮助
解决方案
您可以将每个字符替换pattern
为[
+ this char + .
+ ]
:
bool(re.search("".join([f"[{x}.]" for x in pattern]), entire_string))
模式看起来像[m.][a.][s.][ .][M.]
这里,每个都可以匹配相应的字母或点。请参阅正则表达式演示。
请参阅Python 演示:
import re
incompleted_string1 = "Thom"
incompleted_string2 = "s Mueller naive"
entire_string = 'Thom.s Mueller naive' # <= dot means any char!!! I dont know which char is it
pattern = "mas M"
print (bool(re.search("".join([f"[{x}.]" for x in pattern]), entire_string)) )
# => True
推荐阅读
- sql - Impala SQL - 如何解决“不支持 OR 谓词中的子查询”异常
- c# - 如何使用 c# 在所有 PDF 页面中添加边框
- java - JNI 链接静态库:无效的 ELF 标头
- java - 如何解决 BeanCreationException?
- node.js - NodeJS Passport 为每个路由配置,作为中间件添加并且没有错误,但它不起作用/触发
- python - 在 google colab 中为所有笔记本安装库
- primefaces - Primefaces:数据表:contextMenu
- c++ - 如果 x < 10 则添加前导 0 并将其存储为 int
- javascript - 如何防止 fs.writeFile 覆盖现有文件?
- binding - 带有 selectionModelProperty 问题的 BooleanBinding