LanguageTool:单词后跟单词不同

时间:2016-06-03 18:11:05

标签: regex xml languagetool

如何匹配一系列单词后跟一个与x不同的单词?

例如,我如何匹配at the cost of后跟不同于some的字词?

我尝试了以下内容,但无济于事:

<rule id="AT_THE_COST_OF_!SOME" name="at the cost of !some">
<pattern>
<token>at</token>
<token>the</token>
<token>cost</token>
<token>of</token>
<token regexp="yes">/^((?!some).)*$</token>
</pattern>
<message>Did you mean <suggestion>at the cost of some \5</suggestion>?</message>
<example correction='at the cost of some efforts'>Yes, it comes 
<marker>at the cost of efforts</marker>.</example>
</rule>

2 个答案:

答案 0 :(得分:0)

也可以使用<regexp>标记而不是<token>标记来使用传统正则表达式。 (但需要使用LanguageTool 3.2或更高版本才能使用<regexp>)。有关详情,请访问wiki

<regexp>(at the cost of (?!some\b))\w+<regexp>

匹配的模式:

  

以某人为代价

     

以牺牲一切为代价

丢弃的图案:

  

以某些

为代价

请测试here

答案 1 :(得分:0)

LanguageTool适用于令牌。使用regexp是一种特殊情况,如果使用regexp,它们可以处理单个令牌(使用pattern时)。这将解决您的问题:

<pattern>
    <token>at</token>
    <token>the</token>
    <token>cost</token>
    <token>of</token>
    <token><exception>some</exception></token>
</pattern>

要使用正则表达式,请使用http://wiki.languagetool.org/development-overview#toc8中记录的<regexp>