我正在尝试从用户所说的内容中拉出一个字符串。但是,我当前使用-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/

10-12 18:14