1

私の言語では、キーワードはリテラルな#list-empty?ので、これと照合したいと思います。構文の強調表示を提供するためにgtksourceviewを使用しており、次の定義を使用しています

<keyword>list-empty?</keyword>

ただし、これはandと一致list-emptしますlist-empty(リテラルではありませんlist-empty?)。これは、gktsourceviewが含まれているもの<keyword>を正規表現として扱うことを示しています。?だから私はそれを脱出して文字通り一致させたいと思います。ただし、次のようなもの<keyword>list-empty\?<keyword>はまったく機能しません。

https://github.com/espringe/wisp/blob/bf1aed13/resources/wisp.lang#L67

だから私はどのように脱出し、?それと一致するのですか?

4

2 に答える 2

4

keywordこれをコンテキストに追加します。

<suffix>(?!\w)</suffix>

...次に、疑問符をエスケープします。

<keyword>list-empty\?</keyword>

\bすべてのキーワードが単語文字で終わることを前提として、デフォルトの接尾辞はです。あなたのほとんどはそうし、それらの場合と(?!\w)同じよう\bに動作しますが、疑問符の後に一致しますが、次の文字を単語文字にすることはできません。

于 2012-10-21T10:43:45.980 に答える
0

?その前の1文字に一致します

/list-empty?/list-emptとlist-emptyの両方に一致します。

先読みを使用することをお勧めします。

<keyword>(?=list\-empty).+<keyword>の後にlist-emptyが続く行に一致します。

于 2012-10-17T03:43:30.680 に答える