1

のような演算子に従って分割されるいくつかの文字列をトークン化する必要があります= and !=!=文字列に演算子が含まれるまで、正規表現を使用して成功しました。私の場合、文字列は2つの部分に分かれていましたが、これは予想通りですが、指定さ!れた演算子の一部であってもマークは左側にあります。したがって、正規表現はそれに適していないと考えており、恩恵を受けたいと考えていlexます。lex についての知識と経験が十分にないため、自分の仕事に適しているかどうかわかりません。基本的に、演算子の右側を他のデータの実際の値に置き換えようとしています。それが私の場合に役立つと思いますか?

ありがとう。

4

1 に答える 1

1

レックスを使用する必要がありますか?それはあなたの言語がどれほど複雑かによります。これは非常に強力なツールであり、理解する価値があります (特に yacc を使用する場合、または Java では antlr または javacc を使用できます)

public String[] split(String regex)文字列だけでなく、正規表現を取ります。正規表現「!?=」を使用できます。これは、0 または 1 の!後に=. しかし、split を使用する際の問題は、実際の区切り文字が何であったかがわからないことです。

あなたのアプリケーションに関する情報がほとんどないため、正規表現を使用したくなります。ここには、stackoverflow に関する専門家がたくさんいます。Java regex チュートリアルから始めるのが最適です。

(私の間違いを見つけてくれた Falle1234 に感謝します - 今修正されました。)

于 2010-04-06T12:48:52.693 に答える