在这里,我试图在字符串中找到模式的所有匹配:
theString: "There is a blue truck and a red car next to an orange building." thePattern: [["blue" | "red" | "orange"] ["truck" | "car" | "building"]] print parse thePattern theString
而不是返回[“红色卡车”“蓝色汽车”“橙色建筑”],解析函数返回false.
解决方法
你可以试试这个:
string: "There is a blue truck and a red car next to an orange building." pattern: [ ["blue" | "red" | "orange"] space ["truck" | "car" | "building"] ] parse string [ some [ copy value pattern (print value) | skip ] ]
打印:
blue truck red car orange building
当模式不匹配时,skip用于移动到下一个字符.此外,还会在模式中添加空间,因为它不是“bluetruck”或“redcar”.