0

ファイルを取り、それが有効な Java コードであるかどうかを確認するコードを作成しています。正規表現を使用する必要があります。

私はすべての行を実行し、それがで終わるかどうかを確認します; または{または}。ただし、それを1回だけに制限することはできないようです。つまり両方

int i=0;

int i=0 ;;;;;;;

合格します..私が現在使用している正規表現は

.+;{1}\\s*$

他の多くのオプションを試しましたが、うまくいかないようです。どんな助けでも素晴らしいでしょう!ありがとう

4

3 に答える 3

1

問題は、.がセミコロンにも一致するため、式が の一部として最後のセミコロン以外のすべてに一致すること.+です。

これを回避するには、を使用してセミコロン以外の任意の文字に一致させることができます[^;]。すなわち

[^;]+;\\s*$

int i=0 ;;;;;;;;;ただし、これは完全に有効な Java コードであることに注意してください。

于 2012-04-25T16:06:32.367 に答える
0

正規表現のこの部分は.+、最後の文字を除くすべての文字に一致します;

正規表現の最初の部分から除外;して、「;以外のすべて;の後に1つだけ;」と一致させる必要があります。(それが機能するようになったら、必要に応じてキャラクタークラスを拡張して{と}もキャプチャできます)

HTH

于 2012-04-25T16:02:24.183 に答える
0

行全体にセミコロンが1つしかないことを確認したい場合は、次を使用します。

^[^;]+;{1}\\s*$

ただし、これは有効な Java ソースの適切なチェックではありません。

于 2012-04-25T16:01:16.377 に答える