0

LexとYaccを使用して、MathMLからLaTeXへの簡単なトランスレータを開発しています。正規表現ルールを含む私のlexファイルには、算術演算子[-+ *=/]用に定義されたものがあります。プラスマイナス(+-)と非表示時間('&InvisibleTimes')を認識できるように拡張したいのですが、正規表現に慣れていないため、サポートが必要です。

4

3 に答える 3

2

このようなものは機能しますか?

(?:[-+*=/]|\+-|&InvisibleTimes)
于 2009-05-25T00:02:39.430 に答える
1

これを試して:

([-+*=/]|\+-|&InvisibleTimes)

これは文字クラスの外部の演算子であるため、 +inをエスケープする必要があることに注意してください。+-これは、バックスラッシュ(ここで行ったように)または二重引用符を使用して行うことができます。(二重引用符の構文は非常に珍しいものです。他のほとんどの正規表現の実装では、エスケープにバックスラッシュのみを使用するため、正規表現がより「従来型」になるため、バックスラッシュを使用する傾向があります。)

于 2009-05-25T00:19:52.750 に答える
0

私はMathMLにあまり詳しくないので、あなたとは逆の問題があります。他の人が言っているように、次のように、これをすべて1つの正規表現で行うことができます。

[-+ * = /] | \ +-|&InvisibleTimes

ただし、これらのそれぞれに異なるアクションを関連付けたい場合は、次のようにする必要があります。

[-+ * = /]{/*ここでアクション1*/}
\+-{/*ここでアクション2*/}
&InvisibleTimes{/*ここでアクション3*/}
于 2009-05-25T01:00:31.310 に答える