我正在尝试从用户所说的内容中拉出一个字符串。但是,我当前使用-re的解决方案遇到了问题。
我首先尝试创建一个虚拟助手来查找有关用户要求的信息(例如电影)。无需第二次运行语音识别来创建变量,我想从原始输入中提取它。这就是我的意思:
if "about the movie" in command:
about_the_movie(command)
def about_the_movie(command):
m = re.match(r'(.*) about the movie (.*)', command)
movie = m.group(2)
movie.replace(" ", "+")
url = ('http://www.omdbapi.com/?t=' + movie + '&apikey=********')
r = requests.get(url).json()
我现在遇到的问题是,如果用户说“关于电影'黑暗骑士',它将抛出一个
AttributeError: 'NoneType' object has no attribute 'group'
。我知道这是因为那时m.group(2)不存在但我不确定该如何解决。我也想增加查找单词定义的功能,但是如果用户说“汽车的定义”与“汽车的定义”相比会遇到相同的问题
谢谢!
最佳答案
如果您的字符串包含引号,则:
>> m = re.match(r"about the movie .(.*).", "about the movie 'The Dark Knight'")
>> print(m.group(1))
The Dark Knight
关于python - 如何从Python语音识别中提取子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54192430/