我正在尝试实现一个函数,用于检测对话脚本中是否出现某些模式。模式可能很复杂。例如:
pattern1 = {"Could", "Can", "May", "Do you think"} before {"have", "buy", "enjoy"}
此模式将搜索文本并找到所有类似的表达式:
Could I have a slice of pizza?
Can you buy me a cup of coffee?
Do you think I can finish this task alone?
这些我会定义另一种模式:
pattern2 = {"Why not", "Sure", "Certainly", "Of course", "Yes"} after pattern1
如果一个人可以做某事,这个模式2很可能会与两个人正在谈论的文本相匹配。 before
和after
是我想要的位置匹配关键字。我想要的其他位置关系是near
(两个子模式紧密相关),by(speaker)
(匹配指示说话者的句子的开头)。
我希望在单独的文件中定义这些模式,以便它们更易于管理。我看过ANTLR,但看起来更像是定义一种新语言,而不是帮助我编译正则表达式或“匹配引擎”。有人能说明我应该如何进行这项任务吗?