0

27 を与えるはずのこの式I10I20I-3++があるとしましょう。これらの を削除する方法が見つからないIか、文字列から他の文字であるかどうかを判断できません。さらに、式を評価する方法を見つけなければなりません。正規表現を使用してみましたが、うまくいきませんでした:

public static String removeIs(String input)
{
    //String check = input.replaceAll("[^/+/-/*//^0-9/-]+", " ");
    String check = input.replaceAll("[^-+*/^0-9/-](?![^(]*\\))"," ");
    return check;
}
4

1 に答える 1

1

演算子以外の数字以外の文字を検索するための式は次のとおりです。

[^0-9+\-\*\/]

Qの下のコメントで、電卓を書いて​​いると言っています。文字列には不明な桁数と演算子があることに注意してください。ループを作成して文字列を反復処理し、正規表現の後方参照を使用するのではなく、電卓で使用するために数字と演算子を手動で取得することをお勧めします。ところで:なぜあなたIはスペースに置き換えているのですか?文字列の区切り文字は何ですか?

私はかなり前にかなり高度な正規表現ベースのJSコードパーサーを作成しましたが、この経験から、すべてを一度に解析するための1つの巨大な式を作成することは通常悪い考えであることがわかります。

于 2013-02-23T10:11:22.343 に答える