TextX 如何定义单词之间的边界?
How does TextX defines boundaries between words?
考虑以下由 3 条规则组成的示例。
型号:id_1=Ident 'is' id_2=Ident;
关键字:'is';
标识:!关键字标识;
似乎 TextX 无法解析 id_2 以“is”开头的输入,例如“Tom is isolated”。
我收到以下错误:
None:1:7:错误:预期不在位置 ../test.txt:(1, 7) => 'Tom is* isolated'。
为什么会这样? “孤立”不应该被认为是一个不同于“是”的词吗?如果 id_2 不是以“is”开头,TextX 可以解析输入。
有没有办法解决这个问题?
谢谢!
textX 默认不假定匹配应该在字边界上进行。要解决您的问题,您可以定义关键字以匹配单词边界,例如:
Keyword: /\bis\b/;
或使用 auto keywords feature,可以在 metamodel_from_file/str
调用中使用 autokwd=True
打开。
考虑以下由 3 条规则组成的示例。
型号:id_1=Ident 'is' id_2=Ident;
关键字:'is';
标识:!关键字标识;
似乎 TextX 无法解析 id_2 以“is”开头的输入,例如“Tom is isolated”。 我收到以下错误: None:1:7:错误:预期不在位置 ../test.txt:(1, 7) => 'Tom is* isolated'。 为什么会这样? “孤立”不应该被认为是一个不同于“是”的词吗?如果 id_2 不是以“is”开头,TextX 可以解析输入。
有没有办法解决这个问题?
谢谢!
textX 默认不假定匹配应该在字边界上进行。要解决您的问题,您可以定义关键字以匹配单词边界,例如:
Keyword: /\bis\b/;
或使用 auto keywords feature,可以在 metamodel_from_file/str
调用中使用 autokwd=True
打开。