如何匹配一系列单词后跟一个与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>
答案 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>
。