【问题标题】:How to stick a wildcard in a string in Python?如何在 Python 中的字符串中粘贴通配符?
【发布时间】:2015-07-13 23:47:45
【问题描述】:

我想创建一个简单的聊天机器人类型程序。在尝试了 AIML 并发现它缺乏之后,我决定看看 Python 是否有机会工作。我希望能够采取类似的句子

“天空是什么颜色的?”

并以可理解的答案回应。所以,我想在 if/else 语句中使用通配符来在 python 中快速完成。可能是这样的:

statement = input()
if statement == "_ color _ sky":
    print(SKY_COLOR)

如果你知道一个库(希望是内置的:-]),它有一个工具,甚至只是一个小的转义字符类型技巧,将不胜感激。

【问题讨论】:

  • 这个问题的答案会因“简单解析程序”和“合理答案”的定义以及您想要接受的句子范围而大相径庭。
  • @Dannnno 可能:-) 如果您有编辑建议,请告诉我!我希望我的问题有意义。我在这里有点新,所以任何建议都会被铭记在心。
  • 不是我有什么建议,更多的是我认为你的要求是模棱两可的
  • @Dannnno 嗯,这很有帮助...如果您认为我应该编辑我的问题,但如果您含糊地告诉我您不喜欢这种方式我说了一些话,我无能为力。
  • 就像我说的,我认为这个问题的“好”答案取决于您对“简单解析程序”和“合理答案”的定义,以及您想要接受的句子范围。

标签: parsing python-3.x artificial-intelligence


【解决方案1】:

正则表达式匹配似乎是你想要的

>>> import re
>>> re.search(".*color.*sky.*", "where am I?") == None
True
>>> re.search(".*color.*sky.*", "what color is the sky") == None
False
>>> re.search(".*color.*sky.*", "what color is a rose") == None
True

如果模式不匹配,它会给出 None。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 2015-07-19
  • 1970-01-01
相关资源
最近更新 更多